【发布时间】:2016-04-20 05:29:54
【问题描述】:
我目前在 Mac OSX 上使用 Qt 5.5。我正在尝试构建一个带有主布局的 GUI 系统,该系统带有一个显示一些 I/O 的控制台屏幕,然后还有一个显示一系列按钮和下拉菜单的主布局中的网格布局。
所以主布局会有一个:
- 带有控制台和嵌套网格布局的主布局
- gridlayout 将有各种不同的小部件按我想要的方式布置。
这是我目前的代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
//******* Set up
ui->setupUi(this);
// 01: Creation of Console
console = new Console;
console->setEnabled(false);
//Drop Down Menu
QGridLayout* gridbox = new QGridLayout();
QStringList commands;
commands << "Q" << "W" << "E" << "R";
QComboBox* combo = new QComboBox();
combo->addItems(commands);
/************** Adding Widgets *********************/
//02: Formatting Widgets
//creation and attribution of slider
slider = new QSlider();
slider->resize(255, 20);
slider->setOrientation(Qt::Horizontal);
slider->setRange(0, 255); //0-255 is range we can read
//creation and attribution of the lcd
lcd = new QLCDNumber();
lcd->setSegmentStyle(QLCDNumber::Flat);
lcd->resize(255, 50);
//03: Adding widgets to layout
QVBoxLayout* mainlayout = new QVBoxLayout(); //main layout for ui
//add widgets to the grid
gridbox->addWidget(combo);
gridbox->addWidget(slider);
gridbox->addWidget(lcd);
//add the grid to the mainlayout
mainlayout->addLayout(gridbox);
ui->centralWidget->setLayout(mainlayout); //create main layout
ui->centralWidget->layout()->addWidget(console); //add the console to it
}
我遇到的问题是添加网格布局项目,然后添加控制台。网格布局项目根本没有出现,我想知道我做错了什么。
【问题讨论】:
-
mainlayout->show()你忘了吗?或centralWidget->show() -
但他并没有说主窗口没有显示。然后应该显示所有嵌套的东西。
-
mainWindow->show() 在我的 main.cpp 文件中,这是我遇到问题的网格布局