2013-02-23 45 views
0

我是QT的新手,現在正試圖在QList下面放置一個表格,但Qlist和表格顯示爲兩個單獨的窗口。我需要輸出或多或少像iTunes一樣,Qlist在頂部,Qtable在底部。所有窗口在QT4中單獨打開的問題

任何幫助被讚賞。以下是所有文件的代碼。謝謝

//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); 
} 

回答

0

您應該先創建一個窗口,然後創建該表並列出該窗口的子項。頂層窗口可以是一個簡單的QWidget,或者是一個QMainWindow,如果你需要它提供的額外功能(如菜單,工具欄,狀態欄等)。如果你使用QMainWindow,你仍然應該使用另一個窗口小部件,設置作爲QMainWindow的中心部件(setCentralWidget()),然後將該列表和表添加到該中心部件。

爲了獲得更好的結果,您還可以將它們放在佈局中。

需要記住的是,無父母的小工具總是最高級別的窗口。