Hallo miteinander!
Wie würdet iher vorgehen wenn ihr ein Minesweeper Spielfeld in QT Programmieren wolltet. Meine Idee wäre hierbei z.B. bei einer feldgröße von 30 x 30 dann 900 QPushButtons anzulegen. Aber jeden einzelnen zu connecten und dann däfür slots zu schreiben kann ja nicht der rechte Ansatz sein. Wie könnte man sowas denn effizient realisieren?
Grüße Rumbert
Hunderte Buttons für "MineSweeper"?
Entweder im Slot nach sender() fragen, evtl. casten nach QPushButton* (k.A. ob dein Slot noch von anderen Sachen aktiviert werden kann als von den Buttons) und dann im GridLayout nach dem Index suchen (QLayout::indexOf(QWidget*)), dann mit QGridLayout::getItemPosition deine Zeile und Spalte rausfischen, damit du auch weißt in welches Feld geclickt wurde.
Alternativ QPushButton überladen, und da immer fleißig row/col speichern, oder nen SIGNAL "clicked(MineButton*)" deklarieren, oderoderoder.
Alternativ QPushButton überladen, und da immer fleißig row/col speichern, oder nen SIGNAL "clicked(MineButton*)" deklarieren, oderoderoder.
Einfach dein ersten Beitrag auf Edit gehen und dann den Titel ändernp.s. wie kann mann denn ein [Gelöst] oder so an der Thread Tietel schreiben?
Aber zu deinem (gelösten) Problem...
man könnte auch eine Klasse von QPushButton ableiten und einfach noch 2 Variablen z.B. x und y einfügen.
Da dann drin speichern an welcher Position der Button ist.
Dann vielleicht noch ein signal clickxy(int int) was beim drücken ausgelöst wird und somit weißst du in deinem Programm welcher Button grade gedrückt worden ist.
Also so hätte ich das jetzt gemacht.
Wüste jetzt nicht welcher Ansatz nun besser ist, aber oft gibts ja mehr als nur eine gute Lösung für ein Problem.