c++ - 每次访问这个小部件时,如何在QWidget中保留QSpinBox上的设置值?

标签 c++ qt

我在 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/

相关文章:

c++ - 根据对象元素将相似对象合并在一起的时间复杂度为 O(n²)。如何让它变得更简单?

c++ - 覆盖 QGraphicsLineItem::paint() 时 100% CPU 使用率

c++ - ctrl+鼠标滚轮缩放

c++ - wglShareLists 失败并出现错误 6 : ERROR_INVALID_HANDLE The handle is invalid

c++ - 特殊情况: Is & faster than %?

c++ - Boost套接字读取功能不起作用

c++ - QT qmake 指令中定义?

qt - QWebEngineView 创建窗口

qt - 阻塞 QFuture.result() 或 QFutureWatcher.waitForFinished();

c++ - 如何在Qt中比较两个RGB图像?