简体   繁体   中英

How to catch information for Qt designer

I have created a Qdialog box using the Qt creator designer as shown below:

dialogoverwrite.ui

When I need to display it, I'm instantiate the class dialogoverwrite (.cpp, .h and .ui)

DialogOverwrite *OverwriteDialog = new DialogOverwrite;
OverwriteDialog->exec();
OverwriteOption = OverwriteDialog->result()

My issue is that I want to get the QDialogButtonBox result but I do not know how. the current code, returning the result of the OverwriteDialog but it's not returning any QDialogButtonBox::Yes, QDialogButtonBox::YesToAll ...

How to catch the QButtonGroup result and not the QDialog result.

In the same way, If I want to change the label value from "File(s) and/or Folder(s)" to another label, how to access to this QLabel ?

Thanks for your help

When you pressed QDialogButton it was emit signal clicked(QAbstractButton*) by catching this signal you can identify which action button pressed.

Please go through following link it would be help you.

Qt: How to implement QDialogButtonBox with QSignalMapper for non-standard button ??

Well the standard way to do this is to handle the result by connecting it. So you could do:

connect(this, SIGNAL(clickedDialogButton(QAbstractButton*)), 
    SLOT(dialogButton(QAbstractButton* aButton)));

Next you would create a function in your class called dialogButton (for example) and have that handle the result:

void MyUI::dialogButton(QAbstractButton* aButton) {
    // Obtain the standard button
    StandardButton button = buttonBox−>standardButton(button);  

    // Switch on the type of button
    switch (button) {
    case QDialogButtonBox::YesToAll:
        // Do the thing you would like to do here
        break;
    // add some more cases?
    }
}

You could also check for the signal given by the QButtonGroup . Something like: void QGroupButton::buttonClicked(QAbstractButton* button) would work in the same way.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM