0

私は QT を初めて使用します。現在、テーブルを QList の下に配置しようとしていますが、Qlist とテーブルが 2 つの別々のウィンドウとして表示されています。多かれ少なかれ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);
}
4

1 に答える 1

0

最初にウィンドウを作成してから、テーブルを作成し、そのウィンドウの子を一覧表示する必要があります。トップレベルウィンドウは、単純なQWidgetにすることも、QMainWindowによって提供される追加機能(メニュー、ツールバー、ステータスバーなど)が必要な場合はQMainWindowにすることもできます。QMainWindowを使用する場合でも、別のウィジェットを使用する必要があります。これをQMainWindowの中央ウィジェット(setCentralWidget())として使用し、リストとテーブルをその中央ウィジェットに追加します。

さらに良い結果を得るために、両方をレイアウトに配置することもできます。

覚えておくべきことは、親のないウィジェットは常にトップレベルのウィンドウになるということです。

于 2013-02-23T05:38:37.880 に答える