QT4中所有窗口单独打开的问题

QT4中所有窗口单独打开的问题,qt4,qtablewidget,qlistwidget,Qt4,Qtablewidget,Qlistwidget,我对QT还不熟悉,现在我正试图在QList下面放置一个表,但是QList和表显示为两个单独的窗口。我需要的输出或多或少像itunes一样,Qlist在顶部,Qtable在底部 感谢您的帮助。下面是所有文件的代码。谢谢 //main.cpp #include "listwidget.h" #include "table.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication app(ar

我对QT还不熟悉,现在我正试图在QList下面放置一个表,但是QList和表显示为两个单独的窗口。我需要的输出或多或少像itunes一样,Qlist在顶部,Qtable在底部

感谢您的帮助。下面是所有文件的代码。谢谢

//main.cpp
#include "listwidget.h"
#include "table.h"
#include <QApplication>

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);  

  ListWidget window;
  Table window2;    


  window.move(300, 300);
  window.setWindowTitle("Qtunes");
  window.show();

//  window2.move(300, 300);
 /// window2.setWindowTitle("Qtunes");
  window2.show();   

  return app.exec();
}


//Listwidget.cpp
#include "listwidget.h"
#include <QHBoxLayout>
#include <QInputDialog>


ListWidget::ListWidget(QWidget *parent)
    : QWidget(parent)
{

  QHBoxLayout *hbox = new QHBoxLayout(this);

  lw = new QListWidget(this);
  lw2 = new QListWidget(this);  
  lw3 = new QListWidget(this); 

  hbox->addWidget(lw);

  hbox->addWidget(lw2);

  hbox->addWidget(lw3);


  setLayout(hbox);
}







//listwidget.h
#ifndef LISTWIDGET_H
#define LISTWIDGET_H

#include <QWidget>
#include <QListWidget>

class ListWidget : public QWidget
{
  Q_OBJECT

  public:
    ListWidget(QWidget *parent = 0);

  private:
    QListWidget *lw;
    QListWidget *lw2;
    QListWidget *lw3;   

};



#endif







//table.h
#ifndef TABLE_H
#define TABLE_H

#include <QWidget>

class Table : public QWidget
{
  public:
    Table(QWidget *parent2 = 0);

};

#endif






//table.cpp
#include "table.h"
#include <QHBoxLayout>
#include <QTableWidget>

Table::Table(QWidget *parent2)
    : QWidget(parent2)
{
  QHBoxLayout *hbox2 = new QHBoxLayout(this);

  QTableWidget *table = new QTableWidget(25, 25, this);

  hbox2->addWidget(table);
  setLayout(hbox2);
}
//main.cpp
#包括“listwidget.h”
#包括“表h”
#包括
int main(int argc,char*argv[])
{
QApplication应用程序(argc、argv);
ListWidget窗口;
表2;
窗口。移动(300300);
window.setWindowTitle(“Qtunes”);
window.show();
//窗口2.移动(300300);
///window2.setWindowTitle(“Qtunes”);
window2.show();
返回app.exec();
}
//Listwidget.cpp
#包括“listwidget.h”
#包括
#包括
ListWidget::ListWidget(QWidget*父项)
:QWidget(父项)
{
QHBoxLayout*hbox=新的QHBoxLayout(本);
lw=新的QListWidget(此);
lw2=新的QListWidget(此);
lw3=新的QListWidget(此);
hbox->addWidget(lw);
hbox->addWidget(lw2);
hbox->addWidget(lw3);
setLayout(hbox);
}
//listwidget.h
#ifndef列表
#定义LISTWIDGET\u H
#包括
#包括
类ListWidget:publicQWidget
{
Q_对象
公众:
ListWidget(QWidget*parent=0);
私人:
QListWidget*lw;
QListWidget*lw2;
QListWidget*lw3;
};
#恩迪夫
//表h
#ifndef表H
#定义表H
#包括
类表:公共QWidget
{
公众:
表(QWidget*parent2=0);
};
#恩迪夫
//表1.cpp
#包括“表h”
#包括
#包括
表::表(QWidget*parent2)
:QWidget(parent2)
{
QHBoxLayout*hbox2=新的QHBoxLayout(本);
QTableWidget*table=新的QTableWidget(25,25,这个);
hbox2->addWidget(表格);
setLayout(hbox2);
}

您应该首先创建一个窗口,然后创建表格并列出该窗口的子窗口。顶级窗口可以是一个简单的QWidget,如果您需要QMainWindow提供的额外功能(如菜单、工具栏、状态栏等),则可以是QMainWindow。如果您使用QMainWindow,则仍应使用另一个小部件,将其设置为QMainWindow的中心小部件(setCentralWidget()),然后将列表和表添加到该中心小部件

为了获得更好的结果,还可以将它们都放在布局中

需要记住的是,没有父窗口的小部件总是顶级窗口