Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如果QFileDialog在其插槽中被调用,QPushButton将保持按下状态_Qt_Qt4_Qfiledialog - Fatal编程技术网

Qt 如果QFileDialog在其插槽中被调用,QPushButton将保持按下状态

Qt 如果QFileDialog在其插槽中被调用,QPushButton将保持按下状态,qt,qt4,qfiledialog,Qt,Qt4,Qfiledialog,我在主窗口上有一个简单的按钮。我为它添加了一个插槽: void MainWindow::on_mybutton_pressed() { QString file_name = QFileDialog::getSaveFileName( this, tr("Saving File"), QDir::homePath(), "Text files (*.txt);;Any file (*.*)"); } 但

我在主窗口上有一个简单的按钮。我为它添加了一个插槽:

void MainWindow::on_mybutton_pressed() {
      QString file_name = QFileDialog::getSaveFileName(
          this,
          tr("Saving File"),
          QDir::homePath(),
          "Text files (*.txt);;Any file (*.*)");
}
但是当QFileDialog关闭时,QPushButton保持按下状态,直到我按下另一个QPushButton


如何修复此问题?

我发现使用插槽名称:

on_mybutton_clicked()
而不是

on_mybutton_pressed()

解决了这个问题

是的,始终连接到clicked()而不是按下()以对按钮单击进行操作。(例如,当用户在按下鼠标按钮的同时将鼠标移出按钮,然后将鼠标按钮释放到外部时,人们希望该按钮不会被触发;按下()会导致单击)在OSX上也为我解决了这个问题。