Hoi zäme,
ich will mir ne schmale Neo-Pixel-Sim in Qt machen, wo eine
QWidgets-basierte Formularklasse als Pixel verwendet wird, die dem
entsprechend eine Methode SetColor(uint32_t col) hat, welche eine 32 Bit
Zahl mit den 24 bit RGB Werten bekommt und das Widget dem entsprechend
anmalt.
Das Problem ist, dass Widget wird nicht angezeigt. Wenn ich den Parent
nicht setzte, wird es eben logelöst links oben im Bildschirm ge-show´t.
Zum setzten der Farbe benutze ich ein Stylesheet "background-color:
rgb(64,16,120);" von dem ich weiß, dass es stimmt, weil ich die Farbe
sehe, wenn ich eben den Parent von dem PixelWidget nicht setze.
Ja - ich hab versucht zu googlen...
App-Widget
Ist das dein ganzes Programm?
Ich vermisse die Main Funktion, die dein Widget erzeugt... nutzt Du den
UI-Designer?
Ich würde mir ein "Standart" Gerüst erzeugen lassen mit QMainWindow und
dort dann mit dem UI-Designer ein normales QWidget platieren, das als
"Platzhalter für eine benutzerdefinierte Klasse..." - deine Widget
Klasse - nutzen und gut ist.
Jasson J. schrieb:> Das Problem ist, dass Widget wird nicht angezeigt. Wenn ich den Parent> nicht setzte, wird es eben logelöst links oben im Bildschirm ge-show´t.
Warum es nicht erscheint, ist schwer zu sagen, wenn du nicht zeigst, wie
du versuchst, es zu erzeugen.
SkyperHH schrieb:> Ist das dein ganzes Programm?> Ich vermisse die Main Funktion, die dein Widget erzeugt... nutzt Du den> UI-Designer?>> Ich würde mir ein "Standart" Gerüst erzeugen lassen mit QMainWindow und> dort dann mit dem UI-Designer ein normales QWidget platieren, das als> "Platzhalter für eine benutzerdefinierte Klasse..." - deine Widget> Klasse - nutzen und gut ist.> 1//main.c> 2#include "xxx.h" // Header File vom Widget> 34#include <QApplication>> 5int main(int argc, char *argv[])> 6{> 7 QApplication a(argc, argv);> 8 Widget w;> 9 w.show();> 10 return a.exec();> 11}
Klar, das habe ich auch.
Das Problem lokalsiert sich in Pixelklasse
Cpp
Wenn ich "Anwendungswidget" nicht eins meiner Pixel erstelle, sondern
ein ganz normales Widget und da das selbe Stylesheet setzt, wird das
Widget angezeigt.
Dann wird der Fehler wohl in Zeile 42 deines nicht gezeigten Codes
stecken. Ohne hier ein vollständiges Codebeispiel zu zeigen, wirst du
alleine weitersuchen müssen.
Oliver
Niemand zwingt dich hier rein zu schauen oder zu kommentieren -
Wenn man sich die Klasse ansieht, erkennt man, dass sie nur von QWidget
erbt und eine weitere Methode hat.
Wenn dem entsprechend das übrige Programm funktioniert wenn ich statt
dessen ein plain ein QWidget verwende, liegt es an dem gezeigten Code
meiner weiterten Klasse.
Da bringt der übrige Quelltext keine weitere Weisheit.
Jasson schrieb:> Wenn ich "Anwendungswidget" nicht eins meiner Pixel erstelle, sondern> ein ganz normales Widget und da das selbe Stylesheet setzt, wird das> Widget angezeigt.
Im gezeigten Code gibt es keinen erkennbaren Grund dafür. Was erwartest
du jetzt? Was macht eigentlich das ui-File deiner Pixel? Ist da
vielleicht irgendwas drin?
ÜBrigens: Für ein paar Pixel macht das sicher nicht viel aus, aber was
du da zeigst, wäre so ziemlich die ineffizienteste Methode, die mir
einfallen würde, um so was zu machen.
Jasson schrieb:> Wenn dem entsprechend das übrige Programm funktioniert wenn ich statt> dessen ein plain ein QWidget verwende, liegt es an dem gezeigten Code> meiner weiterten Klasse.
Frei nach Sherlock Holmes: wenn alle möglichen Gründe ausgeschlossen
wurden, bleibt nur das Unmögliche.
Und das ist in deinem Fall der Rest der Codes.
Also zeig den Code des MainWindows oder Frames, in dem du das
Pixel-Widget erzeugst. Da wird der oder besser die Fehler stecken.
Mal ins blaue gefragt: sagt dir Layout was?
Oliver