Hi,

i have written a sample program using Qwindow.
i would like to set some color or add some image to QWindow, but as soon as i run the program the window is opening with background color of other below windows , in my case i m opening from qtcreator,so the window is opening with qtcrator background.


hellotest.cpp
Qt Code:
  1. #include "hellotest.h"
  2.  
  3. HelloTest :: HelloTest(QWindow *parent):
  4. QWindow(parent)
  5.  
  6. {
  7. QWidget *cont = new QWidget;
  8. qDebug() << "in hello test";
  9. //QWidget *window = new QWidget(parent);
  10. //QProcess *process = new QProcess(this);
  11. //args<<"-style"<<"fusion";
  12. //process->start("../../sample-build-Qt5_1Alpha-Debug/sample");//,args);
  13.  
  14. QWidget *window = new QWidget ;//::createWindowContainer(this,0,0);
  15. window -> resize(500,500);
  16. window ->setPalette(QPalette(QColor(255,0,0,255)));
  17. //setIcon(QIcon("/home/ramu/Pictures/screen.png"));
  18. //window -> setPalette(QPalette(QColor(0,255,0,255)));
  19. //window -> setAutoFillBackground(true);
  20. cont -> setLayout(vl);
  21. vl -> addWidget(window);
  22. }
  23.  
  24. HelloTest::~HelloTest()
  25. {
  26.  
  27. }
To copy to clipboard, switch view to plain text mode 

hellotest.h

Qt Code:
  1. #ifndef HELLOTEST_H
  2. #define HELLOTEST_H
  3.  
  4. #include <QtWidgets/QWidget>
  5. #include <QDebug>
  6. #include <QtX11Extras/qx11info_x11.h>
  7. #include <QtWidgets/QApplication>
  8. #include <QtWidgets/QVBoxLayout>
  9. #include <QWindow>
  10. #include<QProcess>
  11.  
  12. class HelloTest :public QWindow
  13. {
  14. Q_OBJECT
  15.  
  16. public:
  17. HelloTest(QWindow *parent = 0);
  18. ~HelloTest();
  19. private:
  20.  
  21.  
  22.  
  23. };
  24.  
  25. #endif // HELLOTEST_H
To copy to clipboard, switch view to plain text mode 

main.cpp
Qt Code:
  1. #include "hellotest.h"
  2. //QX11EmbedWidget *embed;
  3. QWindow *embed;
  4. //QWidget * embed;
  5. HelloTest *hellotest;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9. QApplication qapp(argc, argv);
  10. QString windowId(qapp.arguments()[1]);
  11. QVBoxLayout* layout = new QVBoxLayout;
  12.  
  13. //embed = new QWidget;
  14. embed = new QWindow;
  15. // embed -> setMinimumSize(500,500);
  16. embed -> resize(500,500);
  17. // embed ->setIcon(QIcon("/home/Pictures/screen.png"));
  18. //embed -> setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
  19.  
  20. //embed -> setPalette(QColor(255,0,0,255));
  21.  
  22. //embed -> setAutoFillBackground(true);
  23.  
  24. hellotest = new HelloTest(embed);
  25. //hellotest -> setContentsMargins(0,0,0,0);
  26.  
  27. if(NULL == embed)
  28. {
  29. qDebug() << "Unable to create hellotest";
  30. return 0;
  31. }
  32. if(argc < 2)
  33. {
  34. qDebug() << "More Arguments Needed";
  35. return 0;
  36. }
  37. qDebug()<<"windowId in WG:"<<windowId;
  38.  
  39. //layout -> addWidget(hellotest);
  40. //embed -> setLayout(layout);
  41. // embed -> embedInto(windowId.toULong());
  42. // embed ->fromWinId(windowId.toULong());
  43. // embed -> setVisible(true);
  44. embed -> show();
  45. return qapp.exec();
  46. }
To copy to clipboard, switch view to plain text mode