Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: borkk от Апрель 02, 2013, 07:10



Название: [Решено] QPainter не рисует больше 30 пикселей по вертикали
Отправлено: borkk от Апрель 02, 2013, 07:10
Доброго времени суток!
Такая проблема, рисую QPainter-ом, в классе MyWidget - наследник QWidget, если в main вызываю MyWidget::show, то все хорошо, отрисовывается как надо. Если создаю QtCreator-ом новый проект, и в классе MainWindow создаю экземпляр MyWidget с родителем в этом окне - то отрисовывается не более 30 пикселей по вертикали.
main.cpp
Код:
#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    return a.exec();
}

mainwindow.h
Код:
#include <QMainWindow>
#include <QPainter>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private:
    Ui::MainWindow *ui;
};

class MyWidget : public QWidget
{
    Q_OBJECT
public:
    MyWidget(QWidget *parent = 0) : QWidget(parent) {}
    virtual ~MyWidget() {}
    void paintEvent(QPaintEvent *pe)
    {
        QPainter p(this);
        p.drawLine(5,5,5,40);
        p.drawLine(10,0,100,100);
    }
};

mainwindow.cpp
Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    MyWidget *myWidget = new MyWidget(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


Название: Re: QPainter не рисует больше 30 пикселей по вертикали
Отправлено: Bepec от Апрель 02, 2013, 07:38
А размер своего виджета вы где задаёте?


Название: Re: QPainter не рисует больше 30 пикселей по вертикали
Отправлено: borkk от Апрель 02, 2013, 07:49
Размер виджета задаю в форме в креаторе. Файл ui ниже. Также, добавил файл с архивом проекта.


Название: Re: QPainter не рисует больше 30 пикселей по вертикали
Отправлено: borkk от Апрель 02, 2013, 07:53
Пардон, сделал
Код:
myWidget->resize(100,100);
и все получилось, спасибо!  :)


Название: Re: QPainter не рисует больше 30 пикселей по вертикали
Отправлено: Bepec от Апрель 02, 2013, 07:54
:)