我的QSpinBox
中有QWidget
,仅当QLabel
获得QImage
时才要设置。是否有任何功能或工具可以在任何条件下设置QSpinBox
?
在这里,我的工作方式如下
首先,我声明一个QSpinBox
对象并设置它的最大值
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
通过按下它,我可以得到一个
QPushButton
,用户可以加载图像,该图像将显示在QLabel
中。void MainWindow::on_Browse_clicked()
{
QFileDialog dialog(this);
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));
dialog.setViewMode(QFileDialog::Detail);
QString imagefileName = QFileDialog::getOpenFileName(this, tr("Open File"), "Given_Path", tr("Images (*.png *.xpm *.jpg)"));
if(!imagefileName.isEmpty())
{
image= QImage(imagefileName);
ui->label->setPixmap(QPixmap::fromImage(image));
spinbox= new QSpinBox(this);
QPoint p(100,300);
spinbox->move(p);
}
}
但是它没有显示我尝试获取的任何
QSpinBox
。多谢您的协助。
最佳答案
您可以尝试QSpinBox::setEnabled(bool)
函数,其中QSpinBox::setEnabled(true)
将启用您的SpinBox
,类似地QSpinBox::setEnabled(false)
将禁用此功能。
我认为您可以在QSpinBox
函数中更好地声明MainWindow
并将其禁用。因此,您可以尝试一下。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
spinbox= new QSpinBox(this);
QPoint p(100,300);
spinbox->move(p);
spinbox->setEnabled(false); //here disabled QSpinBox
}
在浏览点击功能内,您可以启用它。
void MainWindow::on_Browse_clicked()
{
QFileDialog dialog(this);
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));
dialog.setViewMode(QFileDialog::Detail);
QString imagefileName = QFileDialog::getOpenFileName(this, tr("Open File"), "Given_Path", tr("Images (*.png *.xpm *.jpg)"));
if(!imagefileName.isEmpty())
{
image= QImage(imagefileName);
ui->label->setPixmap(QPixmap::fromImage(image));
spinbox->setEnabled(true); // Here enabled QSpinBox
}
}
希望对您有帮助。