|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
|
[C++] creare e gestire finestre sotto linux
Ciao a tutti,
devo creare un applicazione piu' o meno complessa che abbia diverse informazioni di stato. Ogni Gruppo di informazioni deve essere gestito in maniera indipendente su finestre indipendenti. Esiste una bella libreria di c++ che mi da la possibilita' di creare oggetti finestra e di modificare le informazioni contenute in questi oggetti anche aposteriori? In poche parole io devo avere queste tre finestre aperte che si aggiornano e sulle quali e' possibile fare delle interazioni (tipo indicare una cosa piuttosto che un altra ect). Ho visto le wxwidget...e' la strada giusta?
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300... |
|
|
|
|
|
#2 |
|
Registered User
Iscritto dal: Feb 2005
Messaggi: 1856
|
prova le qt4, che sono le migliori per linux e sono multipiattaforma.
ovviamente in c++ http://www.qtsoftware.com/ attenzione alle licenze |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
|
ho letto tardi ed ho già installato il modulo gtkmm.
Pensavo che la finestra venisse creata in un thread differente. Invece la chiamata Run è anche in questo caso bloccante. Mi spiego: Codice:
#include <gtkmm.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
Gtk::Window window;
Gtk::Main::run(window);
cout<<"Prova"<<endl;
return 0;
}
Qt da la possibilità di eseguire in maniera indipendente (quindi magari un thread però gestito automaticamente) oppure devo fare io la gestione dei thread a manina?
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
|
non riesco a dormirci su.
non riesco a fare una classe che faccia qualcosa del genere: Codice:
class SomeClass
{
void showWindow();
void setSomeValueOnWindow();
}
Esempio: Codice:
class otherClass
{
void inizializza();
void CambiaValori();
private:
SomeClass a;
}
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
![]() Dimmi che non hai passato una notte intera a lottare con GtkMM! ![]() Ad ogni modo, cambiare le proprietà della finestra a run-time è sicuramente possibile in qualche modo, tu che intendi per "non è possibile"? Non ho capito cosa stai cercando di fare.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
|
qualcosa del genere...
cmq sono vicino alla soluzione.... vi faccio sapere a breve..
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
|
ho risolto il problema utilizzato le gtkmm (wrapper c++ delle gtk+), eseguendo il painting della finestra in un thread separato.
La cosa un pò bruttina diciamo è che il Gtk::Main va inizializzato nel main del programma, ma posso accedere al singleton dell'istanza generata a monte. Non sono proprio sicuro che il painting della finestre eseguito asincronamente sia Thread Safe, quindi se aggiungo oggetti o robe del genere è probabile che alla lunga vada in SegFault, anche se non m'è mai capitato. La struttura del programmino è questa: Codice:
myClass : public Gtk::Window
{
myClass(){
k=Gtk::Main::instance();
}
void OtherMethods(){
//add,modify and remove widget to scene
}
//richiamato dalla pthread come spiegato qui http://www.hwupgrade.it/forum/showthread.php?t=1907615
void render(){
k->run();
}
private:
Gtk::Main *k;
}
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300... |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
|
altro problema...
Mentre la finestra e li che si ridipinge, finche io non muovo il mouse nella finestra gli oggetti non si aggiornano...come mai? esiste qualche funzione che ridipinge autonomamente la finestra?
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:32.




















