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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: передача указателя на вызваашее ошибку окно  (Прочитано 3434 раз)
izoomer
Гость
« : Январь 29, 2007, 18:47 »

[qt-4.2.0 Linux]
я вот использую qInstallMsgHandler
Код:

#include <QApplication>
#include <QWidget>
#include <QTextCodec>
#include "mainwindow.h"

void myMessageOutput(QtMsgType type, const char *msg)
 {
    // в этом методе вызываем окно с ошибкой
 }

int main(int argc, char *argv[])
{
   qInstallMsgHandler(myMessageOutput);
   QApplication app(argc, argv);
   
   QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
   
   MainWindow window;
   window.resize(800, 600);
   window.clearFocus();
   window.setWindowFlags(Qt::Window | Qt::X11BypassWindowManagerHint);
              window.showFullScreen();
   return app.exec();
}


только соответственно по ошибке будет окно выскакивать и затемнятся (осветляться) задний план (виджет window в моем случае) таким методом (спасибо Dendy)
Код:

QPixmap px = QPixmap::grabWidget( very_main_window );
QPainter p( &px );
p.setBrush( QColor( 255, 255, 255, 127 ) ); // highligh a bit
p.setPen( Qt::NoPen );
p.drawRect( px.rect() );
p.end();

 ... только как знать что грабить в QPixmap::grabWidget .... ? как в моем коде передать в обработчик ошибки что нужно грабить MainWindow window и его затемнять ?
Записан
nova
Гость
« Ответ #1 : Январь 29, 2007, 22:01 »

Вообщето для твоей задачи лучше исользовать QMessageBox.
А qInstallMsgHandler используется для отладочных целей, например запись этих сообщений а лог файл.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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