crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3  
Ответить в данную темуНачать новую тему
> преобразованный QWidget не отрисовывается на форме
efg
  опции профиля:
сообщение 13.5.2011, 10:34
Сообщение #21


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 13.5.2011, 8:28) *
efg, Судя по скрину, тестовый вариант виджета работает правильно.


В дизайнере этот тестовый вариант не работает?

Если да, то покажи настройки "Promote to" в дизайнере, для данного виджета. Прям снимок экрана.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
efg
  опции профиля:
сообщение 15.5.2011, 16:46
Сообщение #22


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


ещё вопрос. решил проверить, что же я делаю не так, написав виджет, который рисуется в виде двух линий - диагоналей квадрата 50х50

myclass.h:
#ifndef MYCLASS_H
#define MYCLASS_H

#include <QtGui>

class myclass : public QWidget {
    Q_OBJECT
public:
    explicit myclass(QWidget *parent = 0);
    virtual ~myclass();
    void paintEvent(QPaintEvent *event);
    virtual QSize sizeHint() const;
    virtual QSize minimumSizeHint() const;
private:

};

#endif // MYCLASS_H


myclass.cpp:
#include "myclass.h"

myclass::myclass(QWidget *parent) {
    setWindowTitle("test");
    resize(50, 50);
    setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    repaint();
}

myclass::~myclass() {
}

void myclass::paintEvent(QPaintEvent *event) {
    QPainter painter(this);
    painter.drawLine(0,0,50,50);
    painter.drawLine(0,50,50,0);
}

QSize myclass::sizeHint() const {
    return QSize(50,50);
}

QSize myclass::minimumSizeHint() const {
    return QSize(50,50);
}


main.cpp:
#include "myclass.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    myclass myobject;
    myobject.show();

    return a.exec();
}


реализация всего остального - стандартная при создании gui-проекта
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"

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

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


и - опять та же фигня (на форме не рисуется, если показывать виджет - нормально). может, теперь вам понятнее станет. ткните уже носом в косячное место :smile2:

тьфу, какой ещё "ещё вопрос". пост начинал писать, хотел спросить кое-что другое, но потом сам разобрался, проснулся недавно, утренний тупняк, у кого не бывает :) совсем уже загоняюсь

чтоб пост не пропадал, напишу про найденный баг:
при комментировании кода /* */, он сворачивается в ide за ненадобностью. если же после этого бэкспэйсом довести курсор до следующей

строки, то creator намертво зависнет :/
вынь 7 x64

блин, да чтоб вас ;) редактировать свои сообщения нельзя, а если второе за первым отправить, оно присоединяется к первому
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
efg
  опции профиля:
сообщение 16.5.2011, 11:33
Сообщение #23


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


внезапно. всё заработало после того, как добавил на форму компоновщик, а в него - свой виджет :pardon:
тему можно закрыть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


14 чел. читают эту тему (гостей: 14, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 11:24