【问题标题】:Using setCentralWidget on a subclass of QWidget?在 QWidget 的子类上使用 setCentralWidget?
【发布时间】:2012-05-17 18:39:52
【问题描述】:

不确定我是否正确地问了这个问题,因为我是 C++ 和 Qt 的新手。但是,假设我有一个 QWidget 的子类:

class childofqwidget : public QWidget

我可以将一个指向子类对象的指针传递给 QMainWindow 的 setCentralWidget 成员函数吗?像这样的:

mainlayout = new childofqwidget;
setCentralWidget(mainlayout);

我问的原因是因为我创建了一个 QWidget 的子类,它有一个带有文本框和一些按钮的布局。我想将它作为 QMainWindow 对象的中心小部件插入。这可能吗?如果没有,我应该这样做有更好的方法吗?

【问题讨论】:

  • 你应该养成为每个新单词使用大写字母命名类名的习惯。 childofwidget 应命名为 ChildOfWidget。每个新单词的变量和方法名称应以小写字母和大写字母开头:mainlayout 应命名为 mainLayout。 (这是 Qt 命名约定。)

标签: c++ qt qmainwindow


【解决方案1】:

是的,这很好,这是通常的做法。

(虽然变量是 widget,但调用变量 layout 有点不寻常/令人困惑,但这只是命名。)

【讨论】:

  • 好酷。我试过这样做,但它不会编译...编译器告诉我 setCentralWidget 只接受类型 (*QWidget) 的参数。我可能执行不正确。让我重试...
  • 只要将mainlayout 声明为childofqwidget *mainlayout,您的sn-p 应该可以工作。
  • 太棒了。让它工作;以前的错误是由于我的错误实施造成的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-07-27
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
相关资源
最近更新 更多