我在Qt(MSVC 2008)中做了一些简单的程序,只有很少的复选框和按钮.在调试模式下,一切正常,但我不能分发这样的可执行文件,因为大多数人没有安装Visual Studio.当我在发布模式下编译它时,只有2个按钮工作.
我使用Qt Creator的’绘图工具’设计了我的窗口(Qt Designer,我猜).
我的头文件中定义了这样的插槽:
private slots: void on_goButton_clicked(); // Works fine void on_InputCheckBox_stateChanged(int arg1); // Don't work void on_outputFileCheckBox_stateChanged(int arg1); // Same as above void on_inputbrowseButton_clicked(); // Don't work,since theyre disabled void on_outputbrowseButton_clicked(); // Same as above void replyFinished(QNetworkReply *);
我对这些信号的实现如下:
void MainWindow::on_InputCheckBox_stateChanged(int arg1) { if (arg1 == Qt::Checked) { ui->inputEdit->setEnabled(true); ui->inputbrowseButton->setEnabled(true); } else { ui->inputEdit->setEnabled(false); ui->inputbrowseButton->setEnabled(false); } } void MainWindow::on_outputFileCheckBox_stateChanged(int arg1) { if (arg1 == Qt::Checked) { ui->outputEdit->setEnabled(true); ui->outputbrowseButton->setEnabled(true); } else { ui->outputEdit->setEnabled(false); ui->outputbrowseButton->setEnabled(false); } } void MainWindow::on_inputbrowseButton_clicked() { QString documents = DesktopServices::storageLocation(QDesktopServices::DocumentsLocation); QString filename = QFileDialog::getopenFileName( this,tr("Select input file"),documents,tr("Text files (*.txt);;All files (*)")); if (filename.size() == 0) return; else ui->inputEdit->setText(filename); } void MainWindow::on_outputbrowseButton_clicked() { QString documents = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation); QString filename = QFileDialog::getopenFileName( this,tr("Select output file"),tr("Text files (*.txt);;All files (*)")); if (filename.size() == 0) return; else ui->inputEdit->setText(filename); }
请原谅我的英语,并提前感谢你.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。