Hiding parts of QDialog



  • I changed from Qt 4.8.4 to 5.0.2, when I execute my application I get a warning about setGeometry: violating constraints of window,but the code doesnt even use setGeometry. The idea is that when I click a certain button parts of my dialog should hide, and the dialog size should change to suit the needs of the remaining contents. PLEASE HELP

    Here is the code,its actually a custom slot:
    @
    void KeyBoardDialog::showHideKeyboard(){
    if(ui->MainFrame->isVisible()){
    ui->MainFrame->hide();
    this->setFixedHeight(this->height()-320);
    ui->pushButtonHideKeyBoard->setText("Show Keyboard");
    }

    else {
        ui->MainFrame->show();
        this->setFixedHeight(this->height()+320);
        ui->pushButtonHideKeyBoard->setText("Hide Keyboard");
    }
    

    }
    @


  • Moderators

    welcome to devnet

    I have added code tags for increased readability. Please check out the "forum guidelines":http://qt-project.org/wiki/ForumHelp#e3f82045ad0f480d3fb9e0ac2d58fb01 and use code tags next time.



  • ok thanks, first timer



  • Hi Minz
    Can you debug the value of (this->height()-320) ? I wonder if you are inputing a negative value in setFixedHeight(), that would cause that warning ?



  • Just debugged it, the original height is 651, which becomes 331 after subtracting 320. The value of height alternates between 651 and 331. Also, it not only gives a warning but makes the background of my text widgets black.



  • Before I switched to a 5.0.2 compiler it was working fine, I initially had 4.8.4, but since the project i'm working on will be assessed on a machine with qt 5, i had to change it. Gratitude to whoever can help


  • Moderators

    maybe this may help you:
    @
    this->setFixedSize( QLayout::closestAcceptableSize ( this, this->size()-QSize(0,320) ) );
    @



  • will try it, thanks for ur concern


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.