如何使用Qt创建正确的GUI小部件
How to create right GUI widget by using Qt?
我正在使用Qt和Qt Creator编写一个简单的文本编辑器。我想知道如何做出正确的应用程序的结构。我是说小部件。QMainWindow应该是主窗口部件还是可以是QWidget?当我试图指定QMainWindiw作为QTextEdit的父部件时,不显示QTextEdit。因此,我决定将QMainWindow初始化为QWidget的父窗口,QWidget成为所有其他小部件的父窗口。这是一条正确的道路吗?
#include <QApplication>
#include <QMainWindow>
#include <QWidget>
#include <QVBoxLayout>
#include <QTextEdit>
#include <QMenuBar>
#include <QMenu>
#include <QSizePolicy>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow *mainWindow = new QMainWindow;
QMenu *fileMenu = new QMenu("File");
fileMenu->addAction("New");
fileMenu->addAction("Open");
fileMenu->addAction("Save");
fileMenu->addAction("Save as");
fileMenu->addSeparator();
fileMenu->setMaximumWidth(160);
QMenu *editMenu = new QMenu("Edit");
editMenu->addAction("Copy");
editMenu->addAction("Past");
editMenu->addAction("Cut");
editMenu->setMinimumWidth(160);
QMenuBar *mainMenu = new QMenuBar;
mainMenu->addMenu(fileMenu);
mainMenu->addMenu(editMenu);
mainMenu->addAction("Exit");
mainMenu->show();
QWidget *mainWidget = new QWidget(mainWindow);
mainWidget->move(0, 20);
mainWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
QTextEdit *textEdit = new QTextEdit;
textEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
QVBoxLayout *vBoxLayout = new QVBoxLayout;
vBoxLayout->addWidget(textEdit);
mainWidget->setLayout(vBoxLayout);
mainWidget->show();
mainWindow->setMenuBar(mainMenu);
mainWindow->show();
return a.exec();
}
如果您需要使用其功能之一:工具栏,dock widgets,主菜单或状态栏(有关更多信息,请参阅QMainWindow
文档),则应该使用QMainWindow
。如果你不需要它们,你可以使用QWidget
作为你的顶级小部件。
当使用QMainWindow时,您需要使用QMainWindow::setCentralWidget
设置中心小部件并将窗口内容添加到该小部件中,而不是添加到QMainWindow本身。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 创建小部件的GUI菜单不会出现在QT创建者中
- QT:类的访问功能,该功能使用构造函数外的GUI小部件
- C++ Qt如何通过小的更改创建GUI的副本
- QT gui 项目不会缩小到 ft 到它们的父小部件
- 简单qt-gui;重复的小部件
- C++ 创建小部件数组
- GUI软件设计模式,用于在运行时管理多个小部件
- QT 小部件与 QT GUI
- 如何开始使用自定义 GUI 小部件
- QThread,在线程上创建GUI小部件元素
- 我的 GUI 的模板化小部件系统出现问题
- 如何使用Qt创建正确的GUI小部件
- VTK Qt小部件抛出运行时错误时,放置在GUI
- 小部件必须在GUI线程Error中创建.如何纠正代码
- QT中的自定义外观svg GUI小部件,性能非常差
- 如何在FLUID gui编辑器中旋转小部件