我的 QWidget
中有 QSpinBox
,我只想在 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)
将禁用它。
我认为您最好在 MainWindow
函数中声明 QSpinBox
并将其禁用。所以你可以试试这个。
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
}
}
希望对你有所帮助。
关于c++ - QLabel 在 Qt 中获取 QImage 时如何设置 QSpinBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46921691/