V.I.Smirnov Δημοσ. 19 Οκτωβρίου 2010 Share Δημοσ. 19 Οκτωβρίου 2010 Eγώ δεν μπορώ να το τρέξω διότι, όπως σου είπα πριν καιρό, στα windows βλέπω μια μαύρη οθόνη. Μόνον ο δείκτης του ποντικιού ήταν διαφανής. Τι εννοείς όταν λες ότι δεν δουλεύει για περισσότερες γραμμές ; Ότι οι ευθείες που προκύπτουν μετά την πρώτη ανάκλαση δεν ανακλώνται σωστά στους άλλους τοίχους ; - Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
V.I.Smirnov Δημοσ. 19 Οκτωβρίου 2010 Share Δημοσ. 19 Οκτωβρίου 2010 Eγώ δεν μπορώ να το τρέξω διότι, όπως σου είπα πριν καιρό, στα windows βλέπω μια μαύρη οθόνη. Μόνον ο δείκτης του ποντικιού ήταν διαφανής. Τι εννοείς όταν λες ότι δεν δουλεύει για περισσότερες γραμμές ; Ότι οι ευθείες που προκύπτουν μετά την πρώτη ανάκλαση δεν ανακλώνται σωστά στους άλλους τοίχους ; - Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
karabouzouk... Δημοσ. 19 Οκτωβρίου 2010 Μέλος Share Δημοσ. 19 Οκτωβρίου 2010 Δοκίμασε αν θες να κάνεις σχόλιο την εντολή w1.setAttribute(Qt::WA_TranslucentBackground); στη main.. είναι αυτή που κάνει το παράθυρο διάφανο(που δεν μας ενδιαφέρει τώρα) μάλλον αυτή θα κάνει το πρόβλημα.. Τι εννοείς όταν λες ότι δεν δουλεύει για περισσότερες γραμμές ;Ότι οι ευθείες που προκύπτουν μετά την πρώτη ανάκλαση δεν ανακλώνται σωστά στους άλλους τοίχους ; Όχι η ανάκλαση γίνεται σωστά αλλά για κάποιο λόγο σε μερικές περιοχές καθώς κουνάω το ποντίκι δεν σχεδιάζονται οι γραμμές εκτός από αυτή που ξεκινάει από το αρχικό σημείο προς τον κέρσορα. Κάτι δεν κάνω σωστά εκεί που τις περνάω στη λίστα υποψιάζομαι.. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
karabouzouk... Δημοσ. 19 Οκτωβρίου 2010 Μέλος Share Δημοσ. 19 Οκτωβρίου 2010 Δοκίμασε αν θες να κάνεις σχόλιο την εντολή w1.setAttribute(Qt::WA_TranslucentBackground); στη main.. είναι αυτή που κάνει το παράθυρο διάφανο(που δεν μας ενδιαφέρει τώρα) μάλλον αυτή θα κάνει το πρόβλημα.. Τι εννοείς όταν λες ότι δεν δουλεύει για περισσότερες γραμμές ;Ότι οι ευθείες που προκύπτουν μετά την πρώτη ανάκλαση δεν ανακλώνται σωστά στους άλλους τοίχους ; Όχι η ανάκλαση γίνεται σωστά αλλά για κάποιο λόγο σε μερικές περιοχές καθώς κουνάω το ποντίκι δεν σχεδιάζονται οι γραμμές εκτός από αυτή που ξεκινάει από το αρχικό σημείο προς τον κέρσορα. Κάτι δεν κάνω σωστά εκεί που τις περνάω στη λίστα υποψιάζομαι.. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 20 Οκτωβρίου 2010 Share Δημοσ. 20 Οκτωβρίου 2010 Με αυτό τον τρόπο που είπες δεν το έκανες..? αυτήν τη φορά όχι υπολογίζω την γωνία πρόσπτωσης (α) ως διαφορά ευθείας-τοίχου(β) και ακτίνας (γ) βρίσκω το σημείο τομής προσπίπτουσας και τοίχου α=β-γ και απο αυτό σχεδιάζω μιά ευθεία με γωνία (δ) ίση με την γωνία του τοίχου συν την γωνία πρόσπτωσης δ=β+α . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 20 Οκτωβρίου 2010 Share Δημοσ. 20 Οκτωβρίου 2010 Με αυτό τον τρόπο που είπες δεν το έκανες..? αυτήν τη φορά όχι υπολογίζω την γωνία πρόσπτωσης (α) ως διαφορά ευθείας-τοίχου(β) και ακτίνας (γ) βρίσκω το σημείο τομής προσπίπτουσας και τοίχου α=β-γ και απο αυτό σχεδιάζω μιά ευθεία με γωνία (δ) ίση με την γωνία του τοίχου συν την γωνία πρόσπτωσης δ=β+α . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
karabouzouk... Δημοσ. 20 Οκτωβρίου 2010 Μέλος Share Δημοσ. 20 Οκτωβρίου 2010 αυτήν τη φορά όχιυπολογίζω την γωνία πρόσπτωσης (α) ως διαφορά ευθείας-τοίχου(β) και ακτίνας (γ) βρίσκω το σημείο τομής προσπίπτουσας και τοίχου α=β-γ και απο αυτό σχεδιάζω μιά ευθεία με γωνία (δ) ίση με την γωνία του τοίχου συν την γωνία πρόσπτωσης δ=β+α . ena proxeiro sxhma (to poio proxeiro pou mporeis na kaneis) tha vohthouse polu..! Gia na katalavw apo pou metras tis gvnies.. (suggnwmh gia ton trwpo grafhs alla o upologisths pou eimai den exei ellhnika kai den paizei na tou ta perasw gia ena munhma..!) γωνία πρόσπτωσης Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
karabouzouk... Δημοσ. 20 Οκτωβρίου 2010 Μέλος Share Δημοσ. 20 Οκτωβρίου 2010 αυτήν τη φορά όχιυπολογίζω την γωνία πρόσπτωσης (α) ως διαφορά ευθείας-τοίχου(β) και ακτίνας (γ) βρίσκω το σημείο τομής προσπίπτουσας και τοίχου α=β-γ και απο αυτό σχεδιάζω μιά ευθεία με γωνία (δ) ίση με την γωνία του τοίχου συν την γωνία πρόσπτωσης δ=β+α . ena proxeiro sxhma (to poio proxeiro pou mporeis na kaneis) tha vohthouse polu..! Gia na katalavw apo pou metras tis gvnies.. (suggnwmh gia ton trwpo grafhs alla o upologisths pou eimai den exei ellhnika kai den paizei na tou ta perasw gia ena munhma..!) γωνία πρόσπτωσης Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 20 Οκτωβρίου 2010 Share Δημοσ. 20 Οκτωβρίου 2010 παραθέτω ένα screenshot απο το gtroza-cad ! σβύσε το .txt απο το karabouzouk5.pdf.txt είναι pdf κανονικο με την ps2pdf όλες οι γωνίες απο το 0 (3ηωρα) προσοχή στο ποιό ειναι το x1,y1 x2,y2 για τις ευθείες σε σχέση με την γωνία χρησιμοποίησα την atan2(dy,dx)=>γωνία σε ακτίνια τελικά η γωνία της ευθείας ανάκλασης ως προς την οριζόντια είναι ίση με τη γωνία της ευθείας πρόσπτωσης ως προς την οριζόντια συν 2 φορές την γωνία πρόσπτωσης (γωνία ευθείας με τοίχο) . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 20 Οκτωβρίου 2010 Share Δημοσ. 20 Οκτωβρίου 2010 παραθέτω ένα screenshot απο το gtroza-cad ! σβύσε το .txt απο το karabouzouk5.pdf.txt είναι pdf κανονικο με την ps2pdf όλες οι γωνίες απο το 0 (3ηωρα) προσοχή στο ποιό ειναι το x1,y1 x2,y2 για τις ευθείες σε σχέση με την γωνία χρησιμοποίησα την atan2(dy,dx)=>γωνία σε ακτίνια τελικά η γωνία της ευθείας ανάκλασης ως προς την οριζόντια είναι ίση με τη γωνία της ευθείας πρόσπτωσης ως προς την οριζόντια συν 2 φορές την γωνία πρόσπτωσης (γωνία ευθείας με τοίχο) . karabouzouk5.pdf.txt Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
karabouzouk... Δημοσ. 22 Οκτωβρίου 2010 Μέλος Share Δημοσ. 22 Οκτωβρίου 2010 Ο κώδικας διορθώθηκε και δουλεύει τέλεια.. Απλά μένουν να προγραμματιστούν διάφορες ευκολίες για τον ορισμό των τοίχων κλπ... Κατά τα άλλα αν αυτοί οριστούν στον κώδικα χειροκίνητα λειτουργούν κανονικότατα. Το λάθος που είχε ο προηγούμενος κώδικα ήταν ότι η γραμμή minraylength = maxlength; που αρχικοποιεί την απόσταση από τοίχο στο μέγιστο είχε ξεμείνει έξω από τη for που υπολογίζει περισσότερες ακτίνες... Τέλος πάντων ο κώδικας.. >#include <QtGui> class MyWidget : public QWidget { public: MyWidget(); private: QList <QLineF> walls; QList <QLineF> reflexingLines; QLineF tempLine; int repainttimer/*time between refreshes*/, refreshrate/*in Hz*/, timerID, maxReflexingLines; int reflexingLineCount, reflexingwall, prevreflexingwall; QPointF cursorpos, startpos; QPointF intersectionpoint, tempintersectionpoint; double maxlength, minraylength; bool clickThroughWindowFlag, statsFlag; protected: void paintEvent(QPaintEvent *); void timerEvent(QTimerEvent *); void keyPressEvent(QKeyEvent *); void resizeEvent(QResizeEvent *); //bool event(QEvent *); }; MyWidget::MyWidget() { refreshrate = 40; repainttimer = 1000/refreshrate; timerID = startTimer(repainttimer); maxReflexingLines = 3; startpos = QPoint(0, 0); clickThroughWindowFlag = false; statsFlag = true; walls << QLineF(rect().topRight(), rect().bottomRight()); walls << QLineF(rect().bottomRight(), rect().bottomLeft()); walls << QLineF(rect().bottomLeft(), rect().topLeft()); walls << QLineF(rect().topLeft(), rect().topRight()); } void MyWidget::resizeEvent(QResizeEvent *){ walls.replace(0, QLineF(rect().topRight(), rect().bottomRight())); walls.replace(1, QLineF(rect().bottomRight(), rect().bottomLeft())); walls.replace(2, QLineF(rect().bottomLeft(), rect().topLeft())); walls.replace(3, QLineF(rect().topLeft(), rect().topRight())); maxlength = rect().width() + rect().height(); } void MyWidget::keyPressEvent(QKeyEvent *keyevent){ if(keyevent->key()==(Qt::Key_F)){ startpos = cursorpos; } if(keyevent->key() == Qt::Key_Up){ maxReflexingLines++; } if(keyevent->key() == Qt::Key_Down){ if(maxReflexingLines > 1){ maxReflexingLines--; } } if(keyevent->key() == Qt::Key_V){ walls << QLineF(cursorpos.x(), rect().top(), cursorpos.x(), rect().bottom()); } if(keyevent->key() == Qt::Key_H){ walls << QLineF(rect().left(), cursorpos.y(), rect().right(), cursorpos.y()); } if(keyevent->key() == Qt::Key_Escape){ exit(0); } if(keyevent->key() == Qt::Key_C){ for(int i = walls.size()-1; i>3; i--){ walls.removeAt(i); } } if(keyevent->key()==(Qt::Key_Space)){ clickThroughWindowFlag = !clickThroughWindowFlag; } if(keyevent->key()==(Qt::Key_S)){ statsFlag = !statsFlag; } //increase refresh rate an restart timer. if(keyevent->key()==(Qt::Key_M)){ refreshrate+=1; repainttimer = 1000/refreshrate; killTimer(timerID); timerID = startTimer(repainttimer); } //Decrease refresh rate and restart timer. if(keyevent->key()==(Qt::Key_L)){ if (refreshrate > 1) refreshrate-=1; repainttimer = 1000/refreshrate; killTimer(timerID); timerID = startTimer(repainttimer); } update(); } //bool event(QEvent *){ // // return false; //} void MyWidget::timerEvent(QTimerEvent *){ QLineF::IntersectType interType; if(mapFromGlobal(QCursor::pos()) != cursorpos){ cursorpos = mapFromGlobal(QCursor::pos()); reflexingLines.clear(); reflexingLines << QLineF(startpos, cursorpos); reflexingLines[0].setLength(maxlength); prevreflexingwall = -1; for (reflexingLineCount=0; reflexingLineCount < maxReflexingLines; reflexingLineCount++){ minraylength = maxlength; for(int i=0; i<walls.size(); i++){ if(i != prevreflexingwall){ interType = reflexingLines.at(reflexingLineCount).intersect(walls.at(i), &tempintersectionpoint); if (interType == 1){ if (QLineF(reflexingLines.at(reflexingLineCount).p1(), tempintersectionpoint).length() < minraylength && QLineF(reflexingLines.at(reflexingLineCount).p1(), tempintersectionpoint).length() != 0){ minraylength = QLineF(reflexingLines.at(reflexingLineCount).p1(), tempintersectionpoint).length(); intersectionpoint = tempintersectionpoint; reflexingwall = i; } } } } prevreflexingwall = reflexingwall; reflexingLines[reflexingLineCount].setP2(intersectionpoint); reflexingLines.append(QLineF(intersectionpoint.x(), intersectionpoint.y(), 0, 0)); reflexingLines.last().setAngle(walls[reflexingwall].angle() + reflexingLines[reflexingLineCount].angleTo(walls[reflexingwall])); reflexingLines.last().setLength(maxlength); } reflexingLines.last().setP2(intersectionpoint); update(); //repaint(); } } void MyWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::black); for (int i=0; i<reflexingLines.size(); i++){ painter.setPen(Qt::black); painter.drawLine(reflexingLines.at(i)); //painter.setPen(Qt::red); //painter.drawEllipse(reflexingLines.at(i).p2(), 30,30); } painter.setPen(Qt::cyan); for (int i=0; i<walls.size(); i++){ painter.drawLine(walls.at(i)); } //make mask in order mouse can click throught window. if (clickThroughWindowFlag ){ QRegion r1(rect()); QRegion r2(QRect(cursorpos.x()-2, cursorpos.y()-2, 5, 5)); QRegion r3(r1.xored(r2)); setMask(r3); } else { painter.setPen(Qt::red); painter.drawText(rect(), Qt::AlignCenter, "--> Clicking Through Window Desabled <--\nPress Space to Enable"); } //draw statistics on the right of the screen.// if (statsFlag){ painter.setPen(Qt::blue); QString strx, stry, repainttimerstr, refreshratestr, refllinesstr; strx.setNum(cursorpos.x(), 'g', 10); stry.setNum(cursorpos.y(), 'g',10); repainttimerstr.setNum(repainttimer, 10); refreshratestr.setNum(refreshrate, 10); refllinesstr.setNum(reflexingLines.size()-1, 10); painter.drawText(rect(), Qt::AlignBottom | Qt::AlignRight, strx + " , " + stry + " \n" + refreshratestr + "Hz, " + repainttimerstr + "msec \n" + refllinesstr + " Refl rays \n\n"); //painter.drawText(cursorpos, strx + " , " + stry); } } int main(int argc, char *argv[]) { QApplication app(argc, argv); MyWidget w1; w1.setUpdatesEnabled(true); //w1.setWindowOpacity(1); //w1.setMouseTracking(true); w1.setAttribute(Qt::WA_TranslucentBackground); w1.setWindowFlags(Qt::WindowStaysOnTopHint); //w1.setAutoFillBackground(false); w1.showMaximized(); //w1.show(); //w1.showFullScreen(); //w1.showMaximized(); w1.setFocus(); return app.exec(); } Και το εκτελέσιμο για LINUX. (ακόμη δεν έβαλα το Qt στα windows..!) popup_v2.zip Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 22 Οκτωβρίου 2010 Share Δημοσ. 22 Οκτωβρίου 2010 Ο κώδικας διορθώθηκε και δουλεύει τέλεια.. μπράβο φερέλπιδα νέε karabouzouk ! . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Dr.Fuzzy Δημοσ. 22 Οκτωβρίου 2010 Share Δημοσ. 22 Οκτωβρίου 2010 Ο κώδικας διορθώθηκε και δουλεύει τέλεια..Απλά μένουν να προγραμματιστούν διάφορες ευκολίες για τον ορισμό των τοίχων κλπ... Κατά τα άλλα αν αυτοί οριστούν στον κώδικα χειροκίνητα λειτουργούν κανονικότατα. Το λάθος που είχε ο προηγούμενος κώδικα ήταν ότι η γραμμή minraylength = maxlength; που αρχικοποιεί την απόσταση από τοίχο στο μέγιστο είχε ξεμείνει έξω από τη for που υπολογίζει περισσότερες ακτίνες... Τέλος πάντων ο κώδικας.. >#include <QtGui> class MyWidget : public QWidget { public: MyWidget(); private: QList <QLineF> walls; QList <QLineF> reflexingLines; QLineF tempLine; int repainttimer/*time between refreshes*/, refreshrate/*in Hz*/, timerID, maxReflexingLines; int reflexingLineCount, reflexingwall, prevreflexingwall; QPointF cursorpos, startpos; QPointF intersectionpoint, tempintersectionpoint; double maxlength, minraylength; bool clickThroughWindowFlag, statsFlag; protected: void paintEvent(QPaintEvent *); void timerEvent(QTimerEvent *); void keyPressEvent(QKeyEvent *); void resizeEvent(QResizeEvent *); //bool event(QEvent *); }; MyWidget::MyWidget() { refreshrate = 40; repainttimer = 1000/refreshrate; timerID = startTimer(repainttimer); maxReflexingLines = 3; startpos = QPoint(0, 0); clickThroughWindowFlag = false; statsFlag = true; walls << QLineF(rect().topRight(), rect().bottomRight()); walls << QLineF(rect().bottomRight(), rect().bottomLeft()); walls << QLineF(rect().bottomLeft(), rect().topLeft()); walls << QLineF(rect().topLeft(), rect().topRight()); } void MyWidget::resizeEvent(QResizeEvent *){ walls.replace(0, QLineF(rect().topRight(), rect().bottomRight())); walls.replace(1, QLineF(rect().bottomRight(), rect().bottomLeft())); walls.replace(2, QLineF(rect().bottomLeft(), rect().topLeft())); walls.replace(3, QLineF(rect().topLeft(), rect().topRight())); maxlength = rect().width() + rect().height(); } void MyWidget::keyPressEvent(QKeyEvent *keyevent){ if(keyevent->key()==(Qt::Key_F)){ startpos = cursorpos; } if(keyevent->key() == Qt::Key_Up){ maxReflexingLines++; } if(keyevent->key() == Qt::Key_Down){ if(maxReflexingLines > 1){ maxReflexingLines--; } } if(keyevent->key() == Qt::Key_V){ walls << QLineF(cursorpos.x(), rect().top(), cursorpos.x(), rect().bottom()); } if(keyevent->key() == Qt::Key_H){ walls << QLineF(rect().left(), cursorpos.y(), rect().right(), cursorpos.y()); } if(keyevent->key() == Qt::Key_Escape){ exit(0); } if(keyevent->key() == Qt::Key_C){ for(int i = walls.size()-1; i>3; i--){ walls.removeAt(i); } } if(keyevent->key()==(Qt::Key_Space)){ clickThroughWindowFlag = !clickThroughWindowFlag; } if(keyevent->key()==(Qt::Key_S)){ statsFlag = !statsFlag; } //increase refresh rate an restart timer. if(keyevent->key()==(Qt::Key_M)){ refreshrate+=1; repainttimer = 1000/refreshrate; killTimer(timerID); timerID = startTimer(repainttimer); } //Decrease refresh rate and restart timer. if(keyevent->key()==(Qt::Key_L)){ if (refreshrate > 1) refreshrate-=1; repainttimer = 1000/refreshrate; killTimer(timerID); timerID = startTimer(repainttimer); } update(); } //bool event(QEvent *){ // // return false; //} void MyWidget::timerEvent(QTimerEvent *){ QLineF::IntersectType interType; if(mapFromGlobal(QCursor::pos()) != cursorpos){ cursorpos = mapFromGlobal(QCursor::pos()); reflexingLines.clear(); reflexingLines << QLineF(startpos, cursorpos); reflexingLines[0].setLength(maxlength); prevreflexingwall = -1; for (reflexingLineCount=0; reflexingLineCount < maxReflexingLines; reflexingLineCount++){ minraylength = maxlength; for(int i=0; i<walls.size(); i++){ if(i != prevreflexingwall){ interType = reflexingLines.at(reflexingLineCount).intersect(walls.at(i), &tempintersectionpoint); if (interType == 1){ if (QLineF(reflexingLines.at(reflexingLineCount).p1(), tempintersectionpoint).length() < minraylength && QLineF(reflexingLines.at(reflexingLineCount).p1(), tempintersectionpoint).length() != 0){ minraylength = QLineF(reflexingLines.at(reflexingLineCount).p1(), tempintersectionpoint).length(); intersectionpoint = tempintersectionpoint; reflexingwall = i; } } } } prevreflexingwall = reflexingwall; reflexingLines[reflexingLineCount].setP2(intersectionpoint); reflexingLines.append(QLineF(intersectionpoint.x(), intersectionpoint.y(), 0, 0)); reflexingLines.last().setAngle(walls[reflexingwall].angle() + reflexingLines[reflexingLineCount].angleTo(walls[reflexingwall])); reflexingLines.last().setLength(maxlength); } reflexingLines.last().setP2(intersectionpoint); update(); //repaint(); } } void MyWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::black); for (int i=0; i<reflexingLines.size(); i++){ painter.setPen(Qt::black); painter.drawLine(reflexingLines.at(i)); //painter.setPen(Qt::red); //painter.drawEllipse(reflexingLines.at(i).p2(), 30,30); } painter.setPen(Qt::cyan); for (int i=0; i<walls.size(); i++){ painter.drawLine(walls.at(i)); } //make mask in order mouse can click throught window. if (clickThroughWindowFlag ){ QRegion r1(rect()); QRegion r2(QRect(cursorpos.x()-2, cursorpos.y()-2, 5, 5)); QRegion r3(r1.xored(r2)); setMask(r3); } else { painter.setPen(Qt::red); painter.drawText(rect(), Qt::AlignCenter, "--> Clicking Through Window Desabled <--\nPress Space to Enable"); } //draw statistics on the right of the screen.// if (statsFlag){ painter.setPen(Qt::blue); QString strx, stry, repainttimerstr, refreshratestr, refllinesstr; strx.setNum(cursorpos.x(), 'g', 10); stry.setNum(cursorpos.y(), 'g',10); repainttimerstr.setNum(repainttimer, 10); refreshratestr.setNum(refreshrate, 10); refllinesstr.setNum(reflexingLines.size()-1, 10); painter.drawText(rect(), Qt::AlignBottom | Qt::AlignRight, strx + " , " + stry + " \n" + refreshratestr + "Hz, " + repainttimerstr + "msec \n" + refllinesstr + " Refl rays \n\n"); //painter.drawText(cursorpos, strx + " , " + stry); } } int main(int argc, char *argv[]) { QApplication app(argc, argv); MyWidget w1; w1.setUpdatesEnabled(true); //w1.setWindowOpacity(1); //w1.setMouseTracking(true); w1.setAttribute(Qt::WA_TranslucentBackground); w1.setWindowFlags(Qt::WindowStaysOnTopHint); //w1.setAutoFillBackground(false); w1.showMaximized(); //w1.show(); //w1.showFullScreen(); //w1.showMaximized(); w1.setFocus(); return app.exec(); } Και το εκτελέσιμο για LINUX. (ακόμη δεν έβαλα το Qt στα windows..!) Να επιβεβαιώσω ότι μόλις τώρα το έτρεξα σε Ubuntu 10.10 και λειτουργεί μια χαρά. Και να μην το βάλεις, μη σου πω βγάλε και τα Windows! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 23 Οκτωβρίου 2010 Share Δημοσ. 23 Οκτωβρίου 2010 Να επιβεβαιώσω ότι μόλις τώρα το έτρεξα σε Ubuntu 10.10 και λειτουργεί μια χαρά. Και να μην το βάλεις, μη σου πω βγάλε και τα Windows! η μόνη αλλαγή που πρέπει να γίνει στο project ! καλό σκ . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.