Qt输出一个小盒子



对于我的类,我应该编写一个名为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");
}

相关内容

  • 没有找到相关文章

最新更新