1

QTでツールボタンのリストを作りたいです。ツールボタンはスコラエリアに表示されます。このリストは、プッシュボタンがクリックされたときに表示されます。私はコードを作成しましたが、リストを表示するためにプッシュボタンを 2 回押す必要があることを除けば、動作します。これが私のコードです:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
  ui->setupUi(this);

  find_btn.setParent(ui->centralWidget);
  find_btn.setGeometry(480,250,130,132);

  viewport.setLayout(&scrollLayout);   

  scrollArea.setParent(ui->centralWidget);
  scrollArea.setGeometry(0,116,339,404);
  scrollArea.setWidget(&viewport);

  connect(&find_btn,SIGNAL(clicked()),this,SLOT(import()));
}

void MainWindow::import()
{
  button.setCheckable(true);
  button.setMinimumSize(317,60);

  button2.setCheckable(true);
  button2.setMinimumSize(317,60);

  scrollLayout.addWidget(&button);
  scrollLayout.addWidget(&button2);

  viewport.adjustSize();
}

「find_btn」を押すと、ボタンが入ったスクロールエリアが表示されます。現時点では、ボタン付きのスクロールエリアが表示されますが、「find_btn」を2回クリックした後にのみ表示されます。

スクロールエリアなどを更新する必要があると思います。接続が問題を引き起こしている可能性がありますか?誰でも助けることができますか?

4

1 に答える 1

0

試すことができるオプションがいくつかあります。

viewport.update();

また

scrollArea.viewport()->update();

また

QApplication::processEvents( QEventLoop::ExcludeUserInputEvents );

またはそれらの任意の組み合わせ。

おそらく、ボタンをもう一度押して再描画が強制されるまで、GUIは再描画されません。

于 2012-06-25T11:06:31.987 に答える