Russian Qt Forum
Ноябрь 23, 2024, 14:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] QPainter не рисует больше 30 пикселей по вертикали  (Прочитано 2555 раз)
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;
}
« Последнее редактирование: Апрель 02, 2013, 07:54 от borkk » Записан
Bepec
Гость
« Ответ #1 : Апрель 02, 2013, 07:38 »

А размер своего виджета вы где задаёте?
Записан
borkk
Гость
« Ответ #2 : Апрель 02, 2013, 07:49 »

Размер виджета задаю в форме в креаторе. Файл ui ниже. Также, добавил файл с архивом проекта.
Записан
borkk
Гость
« Ответ #3 : Апрель 02, 2013, 07:53 »

Пардон, сделал
Код:
myWidget->resize(100,100);
и все получилось, спасибо!  Улыбающийся
Записан
Bepec
Гость
« Ответ #4 : Апрель 02, 2013, 07:54 »

Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.135 секунд. Запросов: 21.