对于我的班级,我应该编写一个名为Qtunes的iTunes式程序的框架。我决定使用3个ListWidgets和一个TableWidget来做到这一点。所以我在Qt创建者中编写了以下代码(我们应该手动编写代码而不使用设计器),
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
// ui(new Ui::MainWindow)
//{
// ui->setupUi(this);
//}
{
genreList = new QListWidget(this);
artistList = new QListWidget(this);
albumList = new QListWidget(this);
songTable = new QTableWidget(this);
genLabel = new QLabel(this);
genLabel->setText("Genre");
artistLabel = new QLabel(this);
artistLabel->setText("Artist");
albLabel = new QLabel(this);
albLabel->setText("Album");
QHBoxLayout *labelLayout = new QHBoxLayout;
labelLayout->addWidget(genLabel);
labelLayout->addWidget(artistLabel);
labelLayout->addWidget(albLabel);
QHBoxLayout *topLayout = new QHBoxLayout;
topLayout->addWidget(genreList);
topLayout->addWidget(artistList);
topLayout->addWidget(albumList);
QHBoxLayout *bottomLayout = new QHBoxLayout;
bottomLayout->addWidget(songTable);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(labelLayout);
mainLayout->addLayout(topLayout);
mainLayout->addLayout(bottomLayout);
setLayout(mainLayout);
setWindowTitle("Version 2");
}
我没想到它会工作,但预计至少会看到listWidgets等。相反,我得到了这个:
http://postimage.org/image/krrs2ijmx/
我知道我在某处做错了,我花了最后几个小时试图找到哪里。 谢谢你的帮助。
答案 0 :(得分:0)
尝试以下方法:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
QWidget* centralWidget = new QWidget(this);
//...
//Skip your code
//...
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
setWindowTitle("Version 2");
}