QT4中所有窗口单独打开的问题
我对QT还不熟悉,现在我正试图在QList下面放置一个表,但是QList和表显示为两个单独的窗口。我需要的输出或多或少像itunes一样,Qlist在顶部,Qtable在底部 感谢您的帮助。下面是所有文件的代码。谢谢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
//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()),然后将列表和表添加到该中心小部件
为了获得更好的结果,还可以将它们都放在布局中
需要记住的是,没有父窗口的小部件总是顶级窗口