Results 1 to 16 of 16

Thread: how can i customize a QMainWindow

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jun 2007
    Posts
    8
    Thanks
    1

    Default how can i customize a QMainWindow

    hello:
    I want to change the title bar and border of a QMainWindow. for example: i want to paint a picture on the title bar .But QPainter can not paint any thing on title bar. if somebody can help me? how can i do?
    Last edited by wygggyxtf; 22nd June 2007 at 09:29.

  2. #2
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,714
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: how can i customize q QMainWindow

    I have inplmented a cuntomized title bar by removing the window decorations, and using my own widget as a titlebar.
    I don't think it is possible to actually change the title bar it self, but maybe someone else knows better.
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  3. #3
    Join Date
    Jun 2007
    Posts
    8
    Thanks
    1

    Default Re: how can i customize q QMainWindow

    Quote Originally Posted by high_flyer View Post
    I have inplmented a cuntomized title bar by removing the window decorations, and using my own widget as a titlebar.
    I don't think it is possible to actually change the title bar it self, but maybe someone else knows better.

    yes, I have tried this method,but some task trouble me. without real title bar and border, how can i move and resize the QMainWindow with mouse. when i move my mouse to the edge of the QMainwindow, the shape of mouse didn't change to double-arrowhead, so i can not resie the QMainWindow. please tell me , how did you resove the trouble. had better , put up your code to me. please!

  4. #4
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,714
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: how can i customize a QMainWindow

    without real title bar and border, how can i move and resize the QMainWindow with mouse.when i move my mouse to the edge of the QMainwindow, the shape of mouse didn't change to double-arrowhead, so i can not resie the QMainWindow.
    You have to implement it your self of coucrse (that is what I did).
    please tell me , how did you resove the trouble. had better , put up your code to me. please!
    Ah.. sorry, not at the moment, no time to look for it (I am at work). (maybe tonight when I get home)
    But where is the probem?
    You just catch the mouse events, and in them do the moving and resizing, where is the problem?
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  5. #5
    Join Date
    Jun 2007
    Posts
    8
    Thanks
    1

    Default Re: how can i customize a QMainWindow

    The probem is : I can not cath some mouse events, for example: i can not catch mouse move event, although qt have a mouseMoveEvent() slot, but this is be called only when mouse move over the QMainwindow and a mouse key is pressed. if no mouse is pressed, this function is will not be called.
    on the other hand, i do not know how to caculate the size of QMainwindow.
    please excuse me,I am new to qt, i know only a few qt knowledge. if OK ,please put up your code to me when you are free.

  6. #6
    Join Date
    Jan 2006
    Location
    Paris, France
    Posts
    227
    Thanks
    3
    Thanked 21 Times in 21 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: how can i customize a QMainWindow

    setMouseTracking(true) should do the trick.
    With this, MainWindow will receive mouse events even if no buttons are being pressed.

  7. #7
    Join Date
    Jun 2007
    Posts
    8
    Thanks
    1

    Default Re: how can i customize a QMainWindow

    Quote Originally Posted by guilugi View Post
    setMouseTracking(true) should do the trick.
    With this, MainWindow will receive mouse events even if no buttons are being pressed.
    I have tried this method, but it's no effect.
    i wirte "this->setMouseTracking(true);" in the constructor.
    if i write the code at a wrong position? please tell me?

  8. #8
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,714
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: how can i customize a QMainWindow

    this is getting to specific.
    We need to see ALL the relevant code.
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  9. #9
    Join Date
    Jun 2007
    Posts
    8
    Thanks
    1

    Default Re: how can i customize a QMainWindow

    Quote Originally Posted by high_flyer View Post
    this is getting to specific.
    We need to see ALL the relevant code.
    this->setMouseTracking(true);
    Q3DockWindow * myDockWidget=new Q3DockWindow(this);
    QLabel * myTitle = new QLabel(myDockWidget);
    myTitle->setText("hello this is my Title bar");
    myDockWidget->setWidget(myTitle);
    this->addDockWindow(myDockWidget,Qt:ockTop);
    this->moveDockWindow(myDockWidget,Qt:ockTop);

    QTabWidget * myTb = new QTabWidget(this);

    myPixMap.loadFromData(contact_png,sizeof(contact_p ng),"PNG");
    QIcon myContactIcon(myPixMap);
    myTb->addTab(cvlist,myContactIcon,NULL);

    myPixMap.loadFromData(treasure_png,sizeof(treasure _png),"PNG");
    QIcon myTreasureIcon(myPixMap);

    QAxWidget * object = new QAxWidget("8856F961-340A-11D0-A96B-00C04FD705A2");

    object->dynamicCall("Navigate(const QString&)",treasureWebSite);
    myTb->addTab(object,myTreasureIcon,NULL);

    myPixMap.loadFromData(friend_png,sizeof(friend_png ),"PNG");
    QIcon myFriendIcon(myPixMap);
    QAxWidget * object1 = new QAxWidget("8856F961-340A-11D0-A96B-00C04FD705A2");
    object1->dynamicCall("Navigate(const QString&)",friendWebSite);
    myTb->addTab(object1,myFriendIcon,NULL);
    myTb->setIconSize(QSize(18,20));

    myTb->setTabPosition ( QTabWidget::West);
    myUserInfoButton.setIcon(PsiIconset::instance()->statusPtr(STATUS_OFFLINE)->pixmap());
    myUserInfoButton.setText(" ");
    d->vb_main->addWidget(&myUserInfoButton);
    d->vb_main->addWidget(myTb);


    this is the relevant code, please check up, if some thing wrong with the code!

  10. #10
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,714
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: how can i customize a QMainWindow

    and the mouseMoveEvent()?
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  11. #11
    Join Date
    Jun 2007
    Posts
    8
    Thanks
    1

    Default Re: how can i customize a QMainWindow

    Quote Originally Posted by high_flyer View Post
    and the mouseMoveEvent()?
    void MainWin::mouseMoveEvent ( QMouseEvent * event ){

    if(this->hasMouseTracking()){
    QMessageBox myMB1;
    myMB1.setText("hasMouseTracking");
    myMB1.exec();
    }else{
    QMessageBox myMB1;
    myMB1.setText("has no hasMouseTracking");
    myMB1.exec();

    }
    return;
    }

    this is mouseMoveEvent function!

Similar Threads

  1. QMainWindow modal from non-qt window?
    By hickscorp in forum Qt Programming
    Replies: 3
    Last Post: 21st November 2008, 09:10
  2. QMainWindow resize problem
    By edb in forum Qt Programming
    Replies: 5
    Last Post: 12th January 2007, 10:31
  3. QMainWindow not receiving QResizeEvent
    By brcain in forum Qt Programming
    Replies: 1
    Last Post: 28th September 2006, 06:11
  4. Dynamically Loading a QMainWindow?
    By natron in forum Newbie
    Replies: 10
    Last Post: 21st July 2006, 01:15
  5. Replies: 18
    Last Post: 22nd February 2006, 20:51

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.