我在 QWidget 中有 QSpinBox,我在其中设置了一些值。每当我下次访问这个小部件时,旋转框都会将初始值设为零,而不是我之前设置的任何值。有人知道吗?
提前致谢。
对话框:
Spin_Box::Spin_Box(QWidget parent)
: QDialog(parent),ui(new Ui::Spin_Box)
{
ui->setupUi(this);
/ Settings for title bar /
ui->headingTextEdit->setText("SPIN BOX");
/ Settings Range for Time spin boxes */
ui->fromHourSpinBoxShift1->setRange(0,23);
ui->fromMinSpinBoxShift1->setRange(0,59);
ui->fromSecSpinBoxShift1->setRange(0, 59);
}
打开对话框的插槽:
MainWindow::on_actionSpin_Box_triggered()
{
Spin_Box Spin_BoxDialogue;
Spin_BoxDialogue.setModal(true);
Spin_BoxDialogue.exec();
}
最佳答案
正如 vahancho 和 Oleg Olivson 在评论中所述,每次调用函数 on_actionSpin_Box_triggerd()
时,都会创建一个新的 Dialog 实例。因此所有的值都是初始化的值。
如果你想保留之前插入的值,你必须只创建一次对话框(在你的类中,其中 on_actionSpin_Box_triggered()
被实现)并通过仅调用 exec( )
每次,或者您将对话框的值存储在 settings/... 或其他任何地方,以便在每次打开对话框时加载它们。
取决于您在程序重新启动后是否还需要它们,只有第二种方法会有所帮助。
关于c++ - 每次访问这个小部件时,如何在QWidget中保留QSpinBox上的设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26931404/