Start program center screen on main monitor



  • Hi, i have in computer two monitors... and when i use this code:

    @map_selection_menu->move(QApplication::desktop()->availableGeometry(0).width() + 1, map_selection_menu->y());@

    It start between two monitors... and i need to start it in center or main monitor...better will be when program detect all monitors and after calculate to main...

    I have for screens connected:
    @if (QApplication::desktop()->screenCount() > 1)
    {
    QRect geom = QApplication::desktop()->screenGeometry(0);
    }@

    But now i dont know what with "if" ... how i can continue?



  • have you tried this:
    @
    map_selection_menu->move(0,0);
    @

    This should move your widget to the center of the primary screen.



  • @map_selection_menu->move(0,0);@

    move to left top on main screen



  • then get your resolution and place your widget at width/2, height/2



  • have you tried it? I did it with move(0,0) and it was in center of the screen. See "this code":http://developer.qt.nokia.com/forums/viewthread/10075/.

    Is your widget the main window or a child widget? Because child widgets are always at center of parent widget per default. And I think main window is at center of primary screen per default.

    Does QWidget::move(int x, int y) move to position x,y or does it move to a position that is x further left or right and y further up or down ? The later would explain why move(0,0) put my splashscreen to center (because it was allready at center and was moved 0 further right and 0 further up).



  • It isnt main window just QWidget.And i say move( 0, 0 ) dont help



  • Does your widget have a parent ?



  • Nope



  • try
    @
    QSize screenSize = QApplication::desktop()->geometry().size();
    int primaryScreenWidth = screenSize.width();
    int primaryScreeHeight= screenSize.height();
    int widgetWidth = yourWidget.width();
    int widgetHeight= yourWidget.height();
    yourWidget->move(primaryScreenWidth/2 - widgetWidth/2, primaryScreeHeight/2 - widgetHeight/2)
    @



  • I cant call
    @QSize screenSize = QApplication::desktop()->geometry().size();@

    :(
    No suitable convert from QDesktopWidget* to QSize



  • This is not the method you are after. Read the section Screen Geometry in the [[doc:QDesktopWidget]] documentation.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.