Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 当QLabel在Qt中获得QImage时,如何设置QSpinBox?_C++_Qt - Fatal编程技术网

C++ 当QLabel在Qt中获得QImage时,如何设置QSpinBox?

C++ 当QLabel在Qt中获得QImage时,如何设置QSpinBox?,c++,qt,C++,Qt,我的QWidget中有QSpinBox,我只想在QLabel获取QImage时设置它。是否有任何功能或工具可用于在任何条件下设置QSpinBox 下面是我的工作经历 首先,我声明一个QSpinBox对象并设置它的最大值 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } 我有一个QPu

我的
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)
将禁用此功能

我认为您最好在
main窗口中声明
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
    }    
}

希望它能对您有所帮助。

如果它真的对您有帮助,请不要忘记将此答案标记为正确且有用。