вторник, 3 сентября 2013 г.

QHuman DateEdit

QHuman DateEdit 

Альтернативный компонент Qt для ввода даты. Есть возможность ввода пустой или неполной даты.

Недостатки стандартного QDateEdıt
Стандартный QDateEdit не позволяет ввести неполную или пустую дату. Датой по умолчанию считается 1 января 2000 года. Нельзя очистить поле, там всегда будет 01.01.2000.

QHuman DateEdit





вторник, 2 июля 2013 г.

Компонент "Панель задач"

Наткнулся на qt-apps.org на компонент для Qt "Панель задач" (Task Panel). Подобные панели используются в проводнике Windows. По крайней мере использовались в XP, в семерке такой панели уже существенно меньше. Но тем не менее, может пригодиться.

Лицензия LGPL, то есть, можно использовать в коммерческих приложениях.
Проблем с использованием не обнаружил, единственно, что не понравилось - закругления уголков, немного подрихтовал напильником, чтобы было без сглаживания уголков.
Возможности компонента:
  • Группировка задач по блокам.
  • Возможность добавить свой виджет в блок. Стандартное решение - это размещение ссылок в блоках.
  •  Эффекты анимации при сворачивании/разворачивании блоков.
  • Возможность задать свою цветовую схему. По умолчанию предлагаются две стандартные схемы в стиле Windows XP.

среда, 6 февраля 2013 г.

Глобальный перехват событий

Если нужно поставить глобальный обработчик на все события то нужно переопределить метод
virtual boolnotify ( QObject * receiver, QEvent * e )

класса QApplication.
Например, если мы хотим перехватить все перемещения мышки, то нам поможет такой класс

class MyApp : public QApplication
{
public:
   MyApp(int & argc, char ** argv) : QApplication(argc, argv) {}
   
   virtual bool notify(QObject * receiver, QEvent * e)
   {
      if (e->type() == QEvent::MouseMove)
      {
         //обрабатываем событие
      }
      return QApplication::notify(receiver, e);
   }
};

понедельник, 4 февраля 2013 г.

Отключить системную кнопку close

Отключить системную кнопку Close у окна можно установив окну флаги:

  setWindowFlags(Qt::Window
     | Qt::WindowMinimizeButtonHint     
     | Qt::WindowMaximizeButtonHint     
     | Qt::CustomizeWindowHint);