对于我的类,我应该编写一个名为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/
我知道我在哪里做错了什么,我花了几个小时试图找到哪里。谢谢你的帮助。
尝试以下操作:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
QWidget* centralWidget = new QWidget(this);
//...
//Skip your code
//...
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
setWindowTitle("Version 2");
}