在构造函数中很容易做到,但是如何在插槽中调整大小? 在构造函数中我只是这样做:
MyDialogWindow::MyDialogWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::MyDialogWindow)
{
.....
int x=this->width()*1;
int y=this->height()*0.5;
this->setFixedSize(x,y);
....
}
但同样没有在插槽中工作:
void MyDialogWindow::on_pushButton_clicked()
{
int x=this->width()*1;
int y=this->height()*1;
this->setFixedSize(x,y);
}
似乎我在方法中没有主窗口的对象,所以它必须如何?
答案 0 :(得分:1)
您需要在this->updateGeometry()
之后致电setFixedSize
以表示您的小部件的重新布局:
void MyDialogWindow::on_pushButton_clicked()
{
int x=this->width()*1;
int y=this->height()*1;//make sure something actually changes with the size though
this->setFixedSize(x,y);
this->updateGeometry();
}
答案 1 :(得分:1)
尝试使用QWidget::setGeometry。
答案 2 :(得分:1)
void MyDialogWindow::on_pushButton_clicked()
{
int x = this->width() * 2;
int y = this->height() * 2;
this->setFixedSize( x , y );
this->updateGeometry( );
}
这应该有效,因为this->width( ) * 1
的大小始终相同。你不会看到差异。
最好在您的班级中设置x
和y
全局,并在那里设置宽度和高度,并在点击按钮时指定新尺寸,这样您就不会增加每个你点击按钮的时间:
int x = ui->pushButton.width() * 2;
int y = ui->pushButton.height() * 2;
void MyDialogWindow::on_pushButton_clicked()
{
this->setFixedSize( x , y );
this->updateGeometry( );
}