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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 311 312 [313]
4681  Qt / Общие вопросы / считывание из реестра QMap<QString, T> : Июнь 11, 2010, 19:17
Здравствуйте. Я хочу считывать из реестра QMap произвольных (в частности QString и QStringList) типов, только что-то не могу сообразить как это правильно записать. Хотел сделать так, чтоб тип в шаблон подставлялся динамически. Смотрел на QVariant, QMetaType - не понял как их применить.
Вот так как-то неправильно выглядит:
Код
C++ (Qt)
template<typename T>
QMap<QString, T> loadMap(const QString &registryValue, T mapValueType)
{
QMap<QString, QVariant> loadedMap = QSettings().value(registryValue).toMap();
QMap<QString, T> map;
foreach(QString key, loadedMap.keys())
map.insert(key, loadedMap.value(key).toString()); // тут ещё и написал неправильно
return map;
}

Сохранение в реестр пишется легко:
Код
C++ (Qt)
template<typename T>
void saveMap(const QString &registryValue, const QMap<QString, T> &map)
{
QMap<QString, QVariant> mapToSave;
foreach(QString key, map.keys())
mapToSave.insert(key, map.value(key));
QSettings().setValue(registryValue, mapToSave);
}
4682  Qt / Общие вопросы / Re: как узнать что приложение завершается ОС а не пользователем? : Июнь 06, 2010, 11:22
спасибо, буду смотреть
4683  Qt / Общие вопросы / [РЕШЕНО] как узнать что приложение завершается ОС а не пользователем? : Июнь 06, 2010, 01:50
Столкнулся с проблемой: программа работает, комп (в данном случае ОС - винда) перегружается или вырубается, closeEvent не приходит и настройки не сохраняются. Есть конечно вариант сохранять настройки сразу после изменения, но хотелось бы узнать как дать команду сохраниться при завершении программы ОС.
4684  Qt / Общие вопросы / Re: Передача переменной из одной формы в другую : Июнь 06, 2010, 01:42
Передать общее поле в конструктор класса B который вызывается из А.
грубо (и тут вызывается откуда-то ещё, а не из А):
Код
C++ (Qt)
A *a = new A;
B *b = new B(a, a->id);
...
B::B(QWidget *parent, int id)
{
  // делай что нужно с этим id
}
 
4685  Qt / Пользовательский интерфейс (GUI) / Re: появление окна из трея : Май 17, 2010, 17:51
Спасибо, вот это решение сработало, но это не совсем то, что хотелось бы. Неужели никак нельзя заставить окно появляться именно при QSystemTrayIcon::DoubleClick?

добавлено:
решение оказалось простым:
Код
C++ (Qt)
if (reason == QSystemTrayIcon::DoubleClick)
{
setWindowState(windowState() & ~Qt::WindowMinimized | Qt::WindowActive);
show();
activateWindow();
}
 
4686  Qt / Пользовательский интерфейс (GUI) / появление окна из трея : Май 14, 2010, 22:28
Здравствуйте. Возникла проблема - окно не становится видимым после нажатие на иконку в трее, оно только появляется на панели задач. Уже перепробовал всякие комбинации с activateWindow(), raise(), setFocus() - не помогает.
Код
C++ (Qt)
connect(sysTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(sysTrayActivated(QSystemTrayIcon::ActivationReason)));
...
void AutoEmpImporter::sysTrayActivated(QSystemTrayIcon::ActivationReason reason)
{
if (reason == QSystemTrayIcon::DoubleClick)
show();
}
 
Подскажите пожалуйста как исправить.
4687  Qt / Общие вопросы / Re: Количество строк в текстовом файле : Май 14, 2010, 22:17
Код
C++ (Qt)
QFile f("in.txt");
int n = 0;
if (f.open(QIODevice::ReadOnly | QIODevice::Text)
  n = QTextStream(&f).readAll().split('\n').count();
 
4688  Qt / 2D и 3D графика / Re: создать иконки заданых цветов : Январь 26, 2010, 09:43
большое спасибо, первый вариант помог!
а вот второй не компилируется (qt 4.6.0):
Цитировать
error C2664: QPainter::QPainter(QPaintDevice *): невозможно преобразовать параметр 1 из 'QIcon *' в 'QPaintDevice *'
4689  Qt / 2D и 3D графика / создать иконки заданых цветов : Январь 26, 2010, 03:19
Здравствуйте. У меня такая проблема: не получается создать иконки для QAction'ов по заданному массиву цветов.
Пробовал следующим образом:
Код:
// пример для одной иконки
QColor color(Qt::red);
QIcon icon;
QPainter p;
p.setBrush(QBrush(color));
icon.paint(&p, 0, 0, 24, 24);
QAction *a = new QAction(icon, "red");
Наверное нужен другой подход.
Страниц: 1 ... 311 312 [313]

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