jwebworks
22-04-2003, 09:26
Ich Grüße euch,
nachdem ich mit meinen ersten Qt-Schritten jetzt weitergekommen bin,
stoße ich in einem weiteren Beispiel auf seltsame Effekte.
Mein Klassenkonstruktor:
ScribbleWindow::ScribbleWindow()
{
_color = black;
// dont' blank window before repainting
setBackgroundMode ( NoBackground );
// the menu
_filemenu = new QPopupMenu;
_filemenu->insertItem ( "&Quit", qApp, SLOT ( quit() ) );
_colormenu = new QPopupMenu;
QPixmap blackpixmap ( 20, 20 );
blackpixmap.fill ( black );
_colormenu->insertItem ( blackpixmap, COLOR_MENU_ID_BLACK );
QPixmap redpixmap ( 20, 20 );
redpixmap.fill ( red );
_colormenu->insertItem ( redpixmap, COLOR_MENU_ID_RED );
QPixmap bluepixmap ( 20, 20 );
bluepixmap.fill ( blue );
_colormenu->insertItem ( bluepixmap, COLOR_MENU_ID_BLUE );
QPixmap greenpixmap ( 20, 20 );
greenpixmap.fill ( green );
_colormenu->insertItem ( greenpixmap, COLOR_MENU_ID_GREEN );
QPixmap yellowpixmap ( 20, 20 );
yellowpixmap.fill ( yellow );
_colormenu->insertItem ( yellowpixmap, COLOR_MENU_ID_YELLOW );
QObject::connect ( _colormenu, SIGNAL (activated ( int ) ),
this, SLOT ( slotColorMenu ( int ) ) );
_helpmenu = new QPopupMenu;
_helpmenu->insertItem ( "&About QtScribble", this, SLOT ( slotAbout () ) );
_helpmenu->insertItem ( "About &Qt", this, SLOT ( slotAboutQt () ) );
_menubar = new QMenuBar ( this );
_menubar->insertItem ( "&File", _filemenu );
_menubar->insertItem ( "&Color", _colormenu );
_menubar->insertSeparator();
_menubar->insertItem ( "&Help", _helpmenu );
}
Dieser Code müsste eigentlich ein Color-Menu erzeugen, dass
5 verschiedene Pixmaps enthält. Leider erscheinen mit diesem Code
im Menü später zwar 5 verschiedene Menüeinträge, die aber leer sind.
nur der oberste Eintrag enthält die zuletzt erzeugte QPixmap.
Einen Screenshot habe ich in den Anhang.
Ich benutze Qt 3.1.1, dass bei SuSE 8.2 mitgeliefert wurde. Sind da
evtl. irgendwelche Inkompatibilitäten bekannt?
Oder habe ich einen Fehler eingebaut, den ich nicht sehe?
cu, stop.h
nachdem ich mit meinen ersten Qt-Schritten jetzt weitergekommen bin,
stoße ich in einem weiteren Beispiel auf seltsame Effekte.
Mein Klassenkonstruktor:
ScribbleWindow::ScribbleWindow()
{
_color = black;
// dont' blank window before repainting
setBackgroundMode ( NoBackground );
// the menu
_filemenu = new QPopupMenu;
_filemenu->insertItem ( "&Quit", qApp, SLOT ( quit() ) );
_colormenu = new QPopupMenu;
QPixmap blackpixmap ( 20, 20 );
blackpixmap.fill ( black );
_colormenu->insertItem ( blackpixmap, COLOR_MENU_ID_BLACK );
QPixmap redpixmap ( 20, 20 );
redpixmap.fill ( red );
_colormenu->insertItem ( redpixmap, COLOR_MENU_ID_RED );
QPixmap bluepixmap ( 20, 20 );
bluepixmap.fill ( blue );
_colormenu->insertItem ( bluepixmap, COLOR_MENU_ID_BLUE );
QPixmap greenpixmap ( 20, 20 );
greenpixmap.fill ( green );
_colormenu->insertItem ( greenpixmap, COLOR_MENU_ID_GREEN );
QPixmap yellowpixmap ( 20, 20 );
yellowpixmap.fill ( yellow );
_colormenu->insertItem ( yellowpixmap, COLOR_MENU_ID_YELLOW );
QObject::connect ( _colormenu, SIGNAL (activated ( int ) ),
this, SLOT ( slotColorMenu ( int ) ) );
_helpmenu = new QPopupMenu;
_helpmenu->insertItem ( "&About QtScribble", this, SLOT ( slotAbout () ) );
_helpmenu->insertItem ( "About &Qt", this, SLOT ( slotAboutQt () ) );
_menubar = new QMenuBar ( this );
_menubar->insertItem ( "&File", _filemenu );
_menubar->insertItem ( "&Color", _colormenu );
_menubar->insertSeparator();
_menubar->insertItem ( "&Help", _helpmenu );
}
Dieser Code müsste eigentlich ein Color-Menu erzeugen, dass
5 verschiedene Pixmaps enthält. Leider erscheinen mit diesem Code
im Menü später zwar 5 verschiedene Menüeinträge, die aber leer sind.
nur der oberste Eintrag enthält die zuletzt erzeugte QPixmap.
Einen Screenshot habe ich in den Anhang.
Ich benutze Qt 3.1.1, dass bei SuSE 8.2 mitgeliefert wurde. Sind da
evtl. irgendwelche Inkompatibilitäten bekannt?
Oder habe ich einen Fehler eingebaut, den ich nicht sehe?
cu, stop.h