Russian Qt Forum
Февраля 22, 2025, 19:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запрет перемещения окон  (Прочитано 4522 раз)
Yuriam
Гость
« : Апреля 24, 2006, 09:28 »

Здравствуйте! Есть окно, положение которого не должно меняться пользователем. Как это можно сделать? Пробовал в функции QWidget::moveEvent перемещать окно на старое место, получается бесконечная рекурсия. Помогите.
Записан
Sergeich
Гость
« Ответ #1 : Апреля 24, 2006, 16:48 »

Ну дык создай окно без заголовка, чтоб таскать не за что было.
Записан
Negative
Гость
« Ответ #2 : Апреля 25, 2006, 10:48 »

в линуксе с alt все равно можно будет таскать
Записан
DenKor
Гость
« Ответ #3 : Апреля 25, 2006, 11:50 »

Я бы сделал так.

По таймеру (5-10с или как надо) проверял положение окна и если надо
перетаскивал его обратно. + Можно сделать окно без заголовка.

Можно и по QWidget::moveEvent если сделать выход по рекурсии, что искомые координаты окна соответсвуют нашим.
Записан
Sergeich
Гость
« Ответ #4 : Апреля 25, 2006, 12:07 »

Попробовал на 3-ке: все работает
Код:

#include <qapplication.h>
#include <qwidget.h>

class NMWidget : public QWidget
{
public:
NMWidget( QWidget* parent = 0, const char* name = 0 ) : QWidget( parent, name ) {}
void setPos( int x, int y ) { wpos = QPoint(x, y); move( wpos ); }
protected:
void moveEvent ( QMoveEvent* e ) { move(wpos); }
private:
QPoint wpos;
};

int main( int argc, char** argv )
{
QApplication app( argc, argv );
NMWidget w;
w.setPos( 400, 400 );
w.resize( 200, 200 );
w.show();
app.setMainWidget( &w );
return app.exec();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.