コアの数に応じて変更する QMainWindow レイアウトが必要です。したがって、手動で設定します(デザインモードを使用しません)。
私の質問は、このレイアウトが作成された後、そこに含まれるウィジェットを参照するにはどうすればよいですか?
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//...
buildLayout();
//...
// Now I'd like to use something like this:
// ui->threadingTable->...
// However, it's not the member of ui
}
void MainWindow::buildLayout()
{
QWidget *window = new QWidget(this);
QTableView *threadingTable = new QTableView(window);
//...
QGridLayout *layout = new QGridLayout(window);
layout->addWidget(threadingTable, 0, 0);
//...
window->setLayout(layout);
this->setCentralWidget(window);
}
から QLayoutItem を取得できますthis->centralWidget()
。または、すべてのウィジェットを MainWindow クラスのレイアウト メンバーに作成し、それらに直接アクセスすることもできます。
しかし、私はどちらも正しい方法ではないと感じています。
ウィジェットを ui に渡す方法はありますか? 呼び出してアクセスできるように
ui->threadingTable