QLabel在Qt中获取QImage时如何设置QSpinBox?

时间:2017-10-24 23:46:51

标签: c++ qt

我的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

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用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
    }    
}

希望它会对你有所帮助。