crossplatform.ru

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

 
Тема закрытаНачать новую тему
> Ошибка с QPainter в win32 при разрешении экрана 1024x768
molchanoviv
  опции профиля:
сообщение 18.7.2008, 10:34
Сообщение #1


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


Моя прога:
main.cpp:
#include <QApplication>
#include "mainwindowimpl.h"

int main(int argc, char ** argv)
{
    QApplication app( argc, argv );
    MainWindowImpl win;
    QPixmap pix(":/images/frame.png");
    win.setPixmap(pix);
    win.setMask(pix.mask());
    win.setWindowTitle("Congradilations");
    win.show();
    //app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
    return app.exec();
}



Mianwindowimpl.h:
#ifndef MAINWINDOWIMPL_H
#define MAINWINDOWIMPL_H
#include <iostream>
#include <QtGui>
#include <QtCore>

class MainWindowImpl : public QLabel
{
    private:
        QPoint m_ptPosition;
        QString string;
        
    protected:
        virtual void MainWindowImpl::mousePressEvent(QMouseEvent* pe)
        {
            m_ptPosition = pe->pos();
        }

        virtual void MainWindowImpl::mouseMoveEvent(QMouseEvent* pe)
        {
            move(pe->globalPos() - m_ptPosition);
        }

    public:
        MainWindowImpl(QWidget* pwgt=0)
            :QLabel(pwgt, Qt::FramelessWindowHint | Qt::Window)
            {
                QTextCodec *codec = QTextCodec::codecForName("cp1251");
                QTextCodec::setCodecForTr(codec);
                QPushButton *exitButton = new QPushButton;
                exitButton -> setParent(this);
                exitButton -> setFlat(1);
                exitButton -> setGeometry(410,55,24,24);
                exitButton -> setIcon(QIcon(":/images/exit.png"));
                connect(exitButton,SIGNAL(clicked()),qApp,SLOT(quit()));
                QFile text("congradilations.txt");
                if (!text.open(QIODevice::ReadOnly))
                {
                    qDebug() << "Error opening file to read";
                }
                else
                {
                string = text.readAll();
                }
                text.close();
                QLabel *label = new QLabel(this);
                label -> setGeometry(100,80,300,100);
                label -> setText(string);
            }
            
};
#endif


Если разрешение экрана установлено в 1280х1024 выглядит так:
Прикрепленное изображение


А, если 1024х768, то так:
Прикрепленное изображение


Почему? И как это исправляется?

Сообщение отредактировал Admin - 18.7.2008, 10:37
Причина редактирования: Используем для кода тэг [code]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.7.2008, 10:49
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


а как у тебя при нармальном и проблемном разрешении отображается пример "Shaped Clock Example" (%QTDIR%/examples/widgets/shapedclock)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 18.7.2008, 12:33
Сообщение #3


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


Цитата(Litkevich Yuriy @ 18.7.2008, 11:49) *
а как у тебя при нармальном и проблемном разрешении отображается пример "Shaped Clock Example" (%QTDIR%/examples/widgets/shapedclock)?


Нормально. Пример при обоих разрешениях работает на ура.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.7.2008, 12:40
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3290
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Как я понял, утебя проблема в том, что ты не ресайзишь картинки в зависимости от размера виджета.

Попробуй наложить все эти картинки на виджет и поизменяй его размер, если все будет в порядке, тогда и с разрешением будет все нормально ресайзится.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 18.7.2008, 13:17
Сообщение #5


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


Спасибо, заработало.

Тему можно закрывать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Тема закрытаНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 18.10.2019, 1:39