Russian Qt Forum
Ноябрь 24, 2024, 01:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: WType_Popup и resize  (Прочитано 5046 раз)
SLiDER
Гость
« : Февраль 25, 2005, 23:16 »

Можно ли, как нибудь, при установленном у виджета свойстве WType_Popup, оставить возможность, для пользователя, масштабировать этот виджет мышкой, тягая за его (виджета) края.

З.Ы. Если кто то пользовался Borland C++ Builder версии 6, может посмотреть, там это реализовано в редакторе кода, у выпадающего списка автозавершения ввода.
Записан
Sergeich
Гость
« Ответ #1 : Февраль 28, 2005, 17:44 »

Используй QSizeGrip, что-то вроде этого:

Код:

// main.cpp

#include <qapplication.h>
#include <qwidget.h>
#include <qlistbox.h>
#include <qsizegrip.h>
#include <qlayout.h>
#include <qlineedit.h>


class Popup : public QWidget
{
Q_OBJECT
public:
Popup( QWidget* parent = 0, const char* name = 0 )
  : QWidget( parent, name, WType_Popup | WStyle_NormalBorder )
{
edit = new QLineEdit( this );
QSizeGrip* grip = new QSizeGrip( this );
QHBoxLayout* mainLayout = new QHBoxLayout( this );
mainLayout->addWidget( edit );
mainLayout->addWidget( grip );
}
public slots:
void popup( QListBoxItem* item, const QPoint& p) {
move( p );
if ( item ) edit->setText( item->text() );
else edit->setText("");
show();
}
private:
QLineEdit* edit;
};

int main( int argc, char** argv )
{
  QApplication app( argc, argv );
QObject::connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
QListBox lb;
lb.insertItem( "One" );
lb.insertItem( "Two" );
lb.insertItem( "Three" );
Popup pp;
QObject::connect( &lb, SIGNAL( contextMenuRequested(QListBoxItem*, const QPoint&) ), &pp, SLOT( popup(QListBoxItem*, const QPoint&) ) );
lb.show();
  return app.exec();
}

#include "main.moc"

Записан
SLiDER
Гость
« Ответ #2 : Март 01, 2005, 15:41 »

Спасибо за помощь. Это, практически, то, что нужно. Жаль, что визуальное отображение самого qsizegrip-а убрать нельзя, да и масштабирование возможно только когда за него таскаеш, а за края виджета никак. Но это уже существенно лучше чем ничего.  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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