Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Qt mainWindow lub childWindow - unmovable

Ostatnio zmodyfikowano 2015-12-05 21:48
Autor Wiadomość
Kefirek
Temat założony przez niniejszego użytkownika
Qt mainWindow lub childWindow - unmovable
» 2015-12-02 19:43:34
Witam
Jak zaprogramować mainwindow lub childwindow aby nie można było go przesuwać - żeby miał stałą niezmienną pozycję na pulpicie(użytkownik nie może tego zrobić myszką).
Dodam,że nie wchodzi w grę pozbycie się MainBar przez ustawienie flagi dla mainwindow,
oraz przez wychwycenie moveEvent i przywrócenie poprzedniej pos dla okna.
C/C++
void Form::moveEvent( QMoveEvent * event )
{
    Form::window()->move( QPoint( 410, 140 ) );
}
Pozdrawiam i czekam na podpowiedzi.
P-141322
Kefirek
Temat założony przez niniejszego użytkownika
» 2015-12-03 12:22:22
Czyżby za trudne.....???
P-141349
carlosmay
» 2015-12-03 12:46:32
Czyżby za trudne.....???
 Jest na forum jeden specjalista, ale ślad po nim zaginął (od wczorajszego południa).
P-141350
Kefirek
Temat założony przez niniejszego użytkownika
» 2015-12-03 12:49:43
Poczekam..........
P-141351
michal11
» 2015-12-03 19:45:07
Najprostsza odpowiedź brzmi : nie, nie da się tego zrobić http://www.qtforum.org/post​/97155​/getting-familiar-with-qt-programming.html#post97155

Ja bym spróbował jakiegoś sposobu ze sprawdzaniem rozmiaru okna (może jest taki event?) i blokowaniem tego/zmienianiem od razu rozmiaru na domyślny.

polecam:
Frazy, które należy wpisać w wyszukiwarkę google:
P-141371
Kefirek
Temat założony przez niniejszego użytkownika
» 2015-12-03 20:39:16
Rzeczywiście jest to jedna z prostszych odpowiedzi.
Przed założeniem tematu przegooglowałem cały dzień może dwa i to samo znalazłem co ty michal11, ale mnie to nie zadowala.
Tu by trzeba było trafić na programistę praktyka, który miał już takie zadanie do zrobienia. Stąd też mój post na tym forum.
Trafiłem jeszcze na coś takiego tylko nie wiem czy to zadziała bo nie bardzo wiem jak to zaimplementować w QT
Blokowanie przesuwania okna

protected override void WndProc(ref Message m)
        {
            const int WM_SYSCOMMAND = 0x0112;
            const int SC_MOVE = 0xF010;

            switch (m.Msg)
            {
                case WM_SYSCOMMAND:
                    int command = m.WParam.ToInt32() & 0xfff0;
                    if (command == SC_MOVE)
                        return;
                    break;
            }
            base.WndProc(ref m);
        }

 Carlosmay czy przybył już zaginiony specjalista, może on da radę???
P-141374
Monika90
» 2015-12-04 15:07:47
To na co trafiłeś zadziała tylko w Windows, (zamiast WM_SYSCOMMAND można też spróbować obsługiwać WM_MOVING - u mnie działa). Więc jeżeli chcesz iść tą drogą to prawdopodobnie musisz zdefiniować w swojej klasie tę funkcję http://doc.qt.io/qt-4.8​/qwidget.html#winEvent
P-141388
Kefirek
Temat założony przez niniejszego użytkownika
» 2015-12-04 17:50:14
Jak u Ciebie zadziałało to i u mnie zadziała. Zaraz się wezmę do roboty. Czy to ty jesteś tym zaginionym specjalistą ????
P-141393
« 1 » 2 3
  Strona 1 z 3 Następna strona