Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: qtист от Июль 02, 2009, 14:54



Название: Размеры QDialog
Отправлено: qtист от Июль 02, 2009, 14:54
Пытаюсь узнать размеры созданного диалога,
какие бы размеры не создал в дизайнере(хоть на весь экран,хоть в несколько пикселей)
 - возвращаются всё время размеры 640х480
Код
C++ (Qt)
ParamATC::ParamATC(QWidget *parent,QPoint pos)
: QDialog(parent)
{   int h,w;
 
  h=geometry().height();//высота диалога
  w=geometry().width();//ширина диалога
 
}

чё не так? ???


Название: Re: Размеры QDialog
Отправлено: oxotnik от Июль 02, 2009, 15:01
инициализацию ui забыл?

Dialog::Dialog(QWidget *parent)
    : QDialog(parent), ui(new Ui::Dialog)


Название: Re: Размеры QDialog
Отправлено: qtист от Июль 02, 2009, 15:21
Не врубился так надо?

ParamATC::ParamATC(QWidget *parent,QPoint pos)
         : QDialog(parent),ui(new Ui::ParamATC)


дык рыгается


Название: Re: Размеры QDialog
Отправлено: spirit от Июль 02, 2009, 15:26
покажи свой ашник формы.


Название: Re: Размеры QDialog
Отправлено: spirit от Июль 02, 2009, 15:28
нужно ж заюзать setupUi.


Название: Re: Размеры QDialog
Отправлено: oxotnik от Июль 02, 2009, 15:28
Код
C++ (Qt)
//в *.h
 
namespace Ui
{
   class Dialog;
}
 
class Dialog : public QDialog
{
   Q_OBJECT
 
public:
   Dialog(QWidget *parent = 0);
   ~Dialog();
 
private:
   Ui::Dialog *ui;
};
 
// в *.cpp:
 
#include "dialog.h"
#include "ui_dialog.h"
 
Dialog::Dialog(QWidget *parent)
   : QDialog(parent), ui(new Ui::Dialog)
{
   ui->setupUi(this);
int h = geometry().height();
int w = geometry().width();
}

PS: посмотри как это Creator делает


Название: Re: Размеры QDialog
Отправлено: qtист от Июль 02, 2009, 15:56
Блин,который раз забываю,что всё надо делать после

ui.setupUi(this);

во мудило(это я про себя) ::)


Название: Re: Размеры QDialog
Отправлено: SABROG от Июль 03, 2009, 08:42
А еще не забывай, что в конструкторе значения параметров виджетов могут быть неверными до того момента пока программа не войдет в цикл событий. Всё-таки именно в этот момент и начинают работать layouts изменяя размеры и положение дочерних виджетов.