Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Genri от Февраль 14, 2011, 19:50



Название: Смена курсора мыши по нажатию на кнопку
Отправлено: Genri от Февраль 14, 2011, 19:50
Здравствуйте участники форума! Мне дано задание: сделать модуль для QGIS на языке Python. Подзадача стоит такая, когда пользователь нажимает на кнопку
Код
Python
self.One.setStatusTip( QCoreApplication.translate( "MCCDG", "Calculation of one object") )
QObject.connect( self.One, SIGNAL( "triggered()" ), self.doOne )
self.menu.addAction(self.One)
я ссылаюсь на другой файл в папке
Код
Python
def doOne( self ):
from tools.doOne import MCCDGDialog as One
d = One( self.iface )
d.show_()
и мне необходимо при нажатии на кнопку заменить стандартный курсор на  Qt::CrossCursor.
Прошу помочь мне в решении данной проблемы.


Название: Re: Смена курсора мыши по нажатию на кнопку
Отправлено: shirushizo от Февраль 14, 2011, 19:56
Попробуйте эти методы:
Код:
void QApplication::setOverrideCursor ( const QCursor & cursor )   [static]
void QApplication::changeOverrideCursor ( const QCursor & cursor )   [static]
void QApplication::restoreOverrideCursor ()   [static]

void QWidget::setCursor ( const QCursor & )
void QWidget::unsetCursor ()


Название: Re: Смена курсора мыши по нажатию на кнопку
Отправлено: Genri от Февраль 15, 2011, 06:31
Прошу выложить хотя бы плюшевый примерчик, потому что так я уже пробовал, не получается.


Название: Re: Смена курсора мыши по нажатию на кнопку
Отправлено: santaclaus от Февраль 15, 2011, 21:16
Прошу выложить хотя бы плюшевый примерчик, потому что так я уже пробовал, не получается.
ну привяжи еще один слот к кнопке в духе:

Код:
connect(mybutton, SIGNAL(clicked()), myWidget, SLOT(slotChangCursor())); //зацепляешь событие нажатия кнопки к слоту смены курсора для QWidget

void MyWidget::slotChangCursor() // ну и сам слот который ставит нужный курсоа
{
    setCursor(Qt::ArrowCursor)
}


Название: Re: Смена курсора мыши по нажатию на кнопку
Отправлено: Genri от Февраль 17, 2011, 17:07
Что такое MyWidget?
И где у меня ошибка?
Код
Python
QObject.connect(self.One, SIGNAL ("clicked()" ),myWidget, SLOT(slotChangCursor()))
Код
Python
class A:
 def myWidget( self,MyWidget ):
  void MyWidget::slotChangCursor()
   {
    setCursor(Qt::CrossCursor)
   }


Название: Re: Смена курсора мыши по нажатию на кнопку
Отправлено: Genri от Февраль 22, 2011, 21:46
Форумчане отзовитесь!


Название: Re: Смена курсора мыши по нажатию на кнопку
Отправлено: shirushizo от Февраль 23, 2011, 08:51
В питоне не разбираюсь.
1. myWidget - объект класса, в котором определен слот slotChangCursor().
2. SIGNAL ("clicked()" ) - сигнал без без кавычек должен быть
3. Чтобы были слоты нужно наследоваться от QObject или его наследников