Qt4:将QMainWindow实例放置在其他QWidget / QMainWindow中
|
我想将QMainWindow实例放在另一个QWidget内(例如另一个QMainWindow的centralWidget)。
我想知道为什么它不起作用? QMainWindow直接从QWidget继承。将QWidget放置在另一个QWidget中可以正常工作。
我经常将QMainWindow实例放置在QTabBar中而没有任何问题。
ps您可能会问为什么我需要使用QMainWindow?我想使用垂直布局在1个表单中放置2个小部件。我希望这两个小部件都直接在其上方具有单独的工具栏。
也许还有其他方法可以使用QtCreator将工具栏放置在普通的QWidgets中吗?
编辑
第一个示例(工作正常)
我基于QWidget创建新的类/窗体。 (QtCreator基于标准模板创建3个文件* .cpp,*。h和* .ui)。
类声明看起来像这样
class NotesEditor : public QWidget
{
Q_OBJECT
public:
explicit NotesEditor(QWidget *parent = 0);
~NotesEditor();
private:
Ui::NotesEditor *ui;
};
当我尝试使用此窗口小部件并将其放置在另一个窗口小部件中时,它可以正常工作。
我使用了qtcreator的“升级为...”功能-在这里没有问题。
第二个示例(无效)
我基于QMainWindow创建新的类/窗体。 (QtCreator基于标准模板创建3个文件* .cpp,*。h和* .ui)。
类声明如下所示:
class Notes : public QMainWindow
{
Q_OBJECT
public:
explicit Notes(QWidget *parent = 0);
~Notes();
private:
Ui::Notes *ui;
};
现在,当我尝试将此窗口小部件放置在另一个窗口小部件中时,它不可见。
与之前使用qtcreator的“升级到...”功能相同。
这两个小部件(第一个基于QWidget,第二个基于QMainWindow)都具有基于标准qtcreator代码模板的相同默认结构。我在这里没有太大变化-只是在表单设计器中添加了一些按钮。
在第二个示例中,我尝试在类实例上使用setEnabled(true)和setVisible(true)。第一个没有结果。第二个在单独的窗口中打开此小部件。
我认为最大的问题是QMainWindow有什么嵌套在另一个QWidget中的可能性。正如我在QMainWindow实例可以放置在QTabWidgets内之前写的那样,没有任何问题。
没有找到相关结果
已邀请:
3 个回复
系漏
在构造QMainWindow之后。
盛虱
这应该有所帮助。
届甸衬丝蚕
。 您需要确保每个
QWidget`,除此之外,您应该没问题。