Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hey Leutz,

ich sitze momentan an der Erarbeitung von dem Spiel "Mensch, Ärger dich nicht". Das ganze soll in C++ mit Hilfe von QT 4.5 erstellt werden. Nun versuche ich das Spielfeld zu erstellen. Dabei benutze ich das Gridlayout aber wie kann ich Felder schlicht unterschiedlich färben. Mit oder ohne benutzung von Grafiken. Bzw. wie kann ich einzeln Felder unter Gridlayout überhaupt definieren -.-

oder ist es das einfachste, einzelne Buttons auf das Gridlayout zu legen und deren Farben zu ändern?

Dann reagieren die auch auf Knopfdruck...

Danke für die Hilfe

Bearbeitet von fontys-tipc

Hi,

Dabei benutze ich das Gridlayout aber wie kann ich Felder schlicht unterschiedlich färben. Mit oder ohne benutzung von Grafiken. Bzw. wie kann ich einzeln Felder unter Gridlayout überhaupt definieren -.-

Du kannst keine Felder des GridLayouts unterschiedlich färben, solange du noch nichts in diese "Layoutfelder" rein gelegt hast.

Du kannst in Qt so ziemlich alles in ein Layout legen, solange es nur von QWidget abgeleitet ist (und das ist eigentlich jedes GUI-Element).

Ohne zu wissen, wie du das Spiel geplant hast, gehe ich mal davon aus, dass du die einzelnen Felder nach jedem "Spielzug" immer wieder neuzeichnen/aktualisieren willst. Du könntest deine eigene "Spielfeldklasse" von QWidget ableiten, und die Funktion paintEvent() überladen. In der Funktion könntest du dann beliebig "rumzeichnen".

oder ist es das einfachste, einzelne Buttons auf das Gridlayout zu legen und deren Farben zu ändern?

Dann reagieren die auch auf Knopfdruck...

auch das geht, wenn du willst dass die Felder auf Knopfdruck reagieren. Dieses Verhalten könntest du aber auch bei simplen QWidgets erreichen, indem du die Funktion mousePressEvent() in deiner Widget-Klasse neu implementierst.

Ich finde die GUI dafür zu missbrauchen etwas unschön. Ich persönlich würde das über ein OpenGL Fenster machen und in 2D direkt das ganze rendern lassen. Wenn man es richtig macht, dann könnte man auch irgendwann dann auf 3D umstellen.

Ansonsten schließe ich mich aber meinem Vorposter an

Phil

nun habe ich noch ein programm, welches ich früher einmal mit einem freund in QT bearbeitet habe. Nun unter einer neueren QT-Version erscheint folgende fehlermeldung beim erstellen der makefile

nico@Nico-Ubuntu:~/Desktop/QtFlip$ qmake -project

nico@Nico-Ubuntu:~/Desktop/QtFlip$ qmake

nico@Nico-Ubuntu:~/Desktop/QtFlip$ make

g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -Isrc -I/usr/include/qt3 -o qrc_QtFlip.o qrc_QtFlip.cpp

qrc_QtFlip.cpp:10:28: error: QtCore/qglobal.h: No such file or directory

qrc_QtFlip.cpp:112: Fehler: expected constructor, destructor, or type conversion before »(« token

qrc_QtFlip.cpp:119: Fehler: expected constructor, destructor, or type conversion before »(« token

make: *** [qrc_QtFlip.o] Fehler 1

was soll ich damit anfangen...bzw wie kann ich, falls es daran liegt, die versionen kompatibel machen?

bedankt im vorraus :)

qrc_QtFlip.cpp:10:28: error: QtCore/qglobal.h: No such file or directory

Du solltest Deine Includes korrekt wählen

qrc_QtFlip.cpp:112: Fehler: expected constructor, destructor, or type conversion before »(« token

qrc_QtFlip.cpp:119: Fehler: expected constructor, destructor, or type conversion before »(« token

make: *** [qrc_QtFlip.o] Fehler 1

und Deine Konstruktoren korrekt wählen.

was soll ich damit anfangen...

Ich gehe davon aus, dass Du die Fehler, die Dir der Kompiler meldet, interpretieren kannst

Phil

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.