crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику Алексей1153 ::: Спасибо сказали: 202 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
17.3.2017, 14:44 Перехватить событие от колеса
Анна, для начала можно попробовать всем QSpinBox выключить фокус по колесу

QSpinBox* p=...;
p->setFocusPolicy(Qt::ClickFocus)


и для поиска всех виджетов может пригодиться
findChildren<QSpinBox*>();

Анна,
5.3.2017, 10:40 all queries will cease to work
ht1515, СУБД сама поборолась, о чём весело и сообщает )
Это лишь предупреждения, ничего опасного, кроме последствий незаконченного запроса, но там уже надо сам запрос смотреть

смотри, что у тебя там выполняется во время закрытия соединения. А перед новым подключением сначала отключайся
ht1515,
1.3.2017, 8:01 В QTabWidget не работает installEventFilter()
DCHelper - кто родитель ? Допустим, QObject

тогда, для начала, неплохо бы вызвать eventFilter родителя
bool DCHelper::eventFilter(QObject* o, QEvent* e)
{
    switch(e->type())
    {
        case QEvent::MouseButtonPress:
        case QEvent::Wheel:
        case QEvent::KeyPress:
        {
            slotVremyaProstoya();
        }break;
    }

    return QObject::eventFilter(o,e);
}


а зачем для самого себя фильтр вызывать ? Или это тоже виджет?
this->installEventFilter(this);

попробуй фильтровать события QTabBar, получить указатель можно так
QTabBar *QTabWidget::tabBar() const
DruidCat,
12.1.2017, 9:23 Визуализация в GUI Битовой маски
Цитата(JohnZ @ 11.1.2017, 22:52) *
PS: Ну ткните наконец-то меня в список с чеками :-) src plz plz plz :-)

так уже ткнули же ))

Цитата(lanz @ 8.1.2017, 21:28) *
Список с чеками можно сделать из любой модели, надо просто возвращать нужный Check State
http://doc.qt.io/qt-5/qt.html#CheckState-enum
в data в ответ на Qt::CheckStateRole, любой QList/Table/TreeView нарисует чекбоксы.



кидаешь на форму таблицу QTableView, к ней цепляешь модель QAbstractTableModel , а там в функции data для роли Qt::CheckStateRole возвращаешь нужный Qt::CheckState

и в
Qt::ItemFlags QAbstractItemModel::flags(const QModelIndex &index) const
нужно добавить флаг Qt::ItemIsUserCheckable для нужных ячеек
JohnZ,
14.10.2016, 7:31 Печать через cout << для кодировки UTF-8
Iron Bug, так ему надо не в utf8, а в KOI8-R . Ну и в случае с содержимым QString - там строка хранится в юникоде
pwp2008,
13.10.2016, 9:14 Печать через cout << для кодировки UTF-8
как-то вот так должно получиться
    const QTextCodec* c=QTextCodec::codecForName("KOI8-R");//кодек для нужной кодировки

    QString text="Русский текст";//unicode <- utf8 (кодировка документа)

    QByteArray koi8r_text=c->fromUnicode(text);//KOI8-R  <-  unicode

    cout<<koi8r_text.data();

pwp2008,
16.9.2016, 13:01 QtService + GUI
Цитата(lanz @ 16.9.2016, 14:33) *
А с этим как?

это он преувеличивает, я полагаю )

Вот пример, который перевернул всю мою жизнь мне скинули. Цитирую из источника, у меня это всё переделано слегка


//содержимое по commandLine - может модифицироваться! Но размер не трогается

//        1. Получаем индентификатор активной сессии
//        2. По полученному индентификатору получаем токен текущего юзера.
//        3. Создаем новый токен на основе полученного со своими параметрами доступа. Нужно, чтобы выделить блок окружения для процесса.
//        4. Создаем блок окружения под созданным токеном. Нужно для создания процесса под юзером.
//        5. Запускаем процесс под текущим юзером.


BOOL Gl::CreateUserProcess(PWCHAR commandLine, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
{
    DWORD sid;
    HANDLE hToken = NULL, hNewToken = NULL;
    BOOL result = FALSE;
    PVOID lpEnvironment;        

    sid = WTSGetActiveConsoleSessionId();    
    if(!WTSQueryUserToken(sid, &hToken))
    {        
        return FALSE;    
    }    

    while(1)
    {
        if(!DuplicateTokenEx(hToken, TOKEN_QUERY | TOKEN_DUPLICATE | TOKEN_ASSIGN_PRIMARY, NULL, SecurityAnonymous, TokenPrimary, &hNewToken))
        break;                

        if(!CreateEnvironmentBlock(&lpEnvironment, hNewToken, FALSE))
        break;        
                   
        RtlZeroMemory(lpStartupInfo, sizeof(STARTUPINFO));
        RtlZeroMemory(lpProcessInformation, sizeof(PROCESS_INFORMATION));
        lpStartupInfo->cb = sizeof(STARTUPINFO);
        lpStartupInfo->lpDesktop = L"Winsta0\\Default";        
        result = CreateProcessAsUser(hNewToken, NULL, commandLine, NULL, NULL, FALSE, CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE, lpEnvironment, NULL, lpStartupInfo, lpProcessInformation);
        break;
    }
    if(hToken)
    CloseHandle(hToken);
    if(hNewToken)
    CloseHandle(hNewToken);

    return result;
}


для экспериментов понадобятся заголовки
#include <windows.h>
#include <Wtsapi32.h>
#include <Userenv.h>


и либы из winddk
wtsapi32.lib
userenv.lib
lanz,
7.9.2016, 8:18 Кто пользовался QtAlgorithms?
caseInsensitiveLessThan у тебя статическая ?
ht1515,
2.5.2016, 10:27 Использование значения одной переменной в качестве имени другой
Dima2387, используй контейнеры, например
std::vector
std::map

https://ru.wikipedia.org/wiki/%D0%A1%D1%82%...A%D0%B0_C%2B%2B
Dima2387,
30.3.2016, 7:57 не обычный калькулятор на Qt 4.8.3
Lopsyc,

если бы ты скомпилировал хотя бы, узнал бы, что пропущен символ ";" , а так же повтор имени
QHBoxLayout* pvbxLayout

, где явно надо было phbxLayout

советую использовать редактор форм - это удобнее и наглядно. Потом, если вдруг так захотелось, код разметки можно выдернуть из *.ui , а лучше не выдёргивать, а создать диалог из ресурса через ui->Setup да и всё

Что касается лабораторной работы - располагаешь на форме три окна QLineEdit (числа), один QComboBox (выбор операции)

далее пригодятся методы
QLineEdit::text()
QString::toFloat()
QComboBox::currentText()
QLineEdit::setText()
Lopsyc,
11.3.2016, 15:08 Инфиксное применение функции
Цитата
хочу написать
x >= j >= j >= j


сдаётся мне, это невозможно просто потому, что ты под тремя j понимаешь разные типы (j1, j2, j3) , а идентификатор в выражении (область видимости - или как это обозвать для шаблона? ) один и тот же, а в C++ так нельзя.

Видимо, только так

typedef j<X> j1;
typedef j<Wrap<X>> j2;
typedef j<Wrap<Wrap<X>>> j3;

x >= j1() >= j2() >= j3()


нет, с синтаксисом я что-то тут напутал, но, надеюсь, мысль о невозможности понятна ))
lanz,
11.3.2016, 7:42 Инфиксное применение функции
*скромно* а что если остановиться на " f(g(h(x)))" :D

у меня компилятор не понимает auto, так что на проблеме №2 мысль останавливается.

А на пальцах - для чего это всё задумывается ? Чисто для красоты ?
lanz,
3.3.2016, 7:46 Создание древовидного списка, взаимодействующего с SQL
ro12man3, а, я понял, что ты хочешь. Вроде этого
http://doc.qt.io/qt-4.8/qsqltablemodel.html
или
http://doc.qt.io/qt-4.8/qsqlrelationaltablemodel.html , но для дерева

Собственно, эту модель и использовать. И запрос указывать в модели
ro12man3,
1.3.2016, 7:31 Получить значение переменной из другого класса
nef, не ясно, что именно тебе нужно сделать. Что такое подпроект, почему переменная находится в другом, как туда её занесло и тд ))
nef,
20.1.2016, 8:03 QString объект из функции.
Ponchikus, ты выводишь адрес локальной переменной, которая уже будет уничтожена по выходу из функции. Поэтому адрес вполне уже может использоваться под новые нужды. Значение, которая вернула функция, используется в конструкторе при создании нового объекта (QString str), для которого и был использован уже освободившийся адрес


кстати, вот так

QString str;
str=returnStr();
qDebug()<<&str;



адрес может быть выведен другой (по логике - он обязательно другой будет)
Ponchikus,
23.12.2015, 7:58 Перевести код под gtk+3.6.4
а что именно не работает ?

навскидку - не видно, где создаётся память для widget. А на инициализацию переменных вообще тут поклали
lss,
16.12.2015, 13:46 QFileSystemModel и полное сканирование папок
dmsovetov, не знаю, как насчёт одинаковых имён, я к своим слотам и сигналам приписываю префиксы slot_ и signal_ всегда, чтобы не нарываться на одинаковые имена ) Так, на всякий случай. Здесь вроде всё правильно компилятор понимает

ещё момент. Я добавил проверку
    if(!idx.isValid())
    {
        //после переименования файла вне программы попадаем сюда, однако
    }


и вот такой невалидный индекс ты передаёшь в rowCount, после чего ассерт показывается

Причину невалидности не знаю

ViGOur, рекурсии нету, поскольку указаны SLOT и SIGNAL , поэтому препроцессор вроде понимает их как разные сигнатуры
dmsovetov,
16.12.2015, 12:28 Получение порядкового номера QTreeView
poluna, у меня обычно есть "внемодельное" дерево - источник, по которому модель пересобирается. Контейнер обычно на основе QMap<>

struct s_item
{
s_item* m_parent;
QVector<s_item*> m_children;

...

};


s_item* m_root;
QMap<s_item*,s_item*> m_tree;


У тебя этой очень удобной детальки , похоже, нету, поэтому мы не и понимаем друг друга :D В контейнере всё ищется и перебирается запросто
poluna,
15.12.2015, 8:01 Переподключение к БД
SibBear, про сбой не знаю (сбой - это серьёзно :lol: ), а при разрыве связи можно посмотреть

https://dev.mysql.com/doc/refman/5.7/en/auto-reconnect.html

метод QSqlDatabase::setConnectOptions , параметр MYSQL_OPT_RECONNECT

ну и проверяем, что база открыта isOpen

Переподключаться можно точно так же, как подключался

db.close();
db.open();


процесс подключения может быть заметный по времени (скажем так, не мгновенный), так что учитывай это. Я у себя выделил отдельный поток, который заведует открытием базы, а также скидыванием из очереди потока новых сообщений. Ну, и в случае многопоточности также не забывай про синхронизацию
SibBear,
1.6.2014, 18:09 Узнать о подключении телефона к ПК
я сомневаюсь, что это возможно в общем случае

но можно попробовать найти эмулированный телефоном COMпорт и AT командами выведать инфу о устройстве. Если COM не создаётся, то перебирать при помощи WinAPI все устройства и по вендорам, видимо, пытаться выяснить, кто из них кто

детали не смогу подсказать )

Ещё решение может зависить от поставленной цели
abc,
15.5.2014, 9:16 Задание цвета текста и фона недоступного QListWidgetItem с помощью QPalette или CSS
Оля, в QtCreator , в редакторе формы в свойствах найди palette, откроется редактор. Там выбери детальное отображение цветов. А внизу окна - режим, который хочешь настраивать. И экспериментируй , так сказать, визуально )) Я лично там путаюсь немного, да и редко пользуюсь этим

потом можно открыть *.ui редактируемого диалога и найти, как там что расставилось.
Steklova Olga,
12.5.2014, 9:53 Строка StringList по позиции в тексте
ну как бы есть )

std::map<int/*номер в QStringList*/,uint32_t/*индекс в файле*/>
+
обратный мар (только уже multimap)
Alex_under,
10.4.2014, 11:03 в чем сделать исталятор драйвера?
mezmay, попробуй. Я этой утилитой для windriver файлы ставил, может быть проканает и тут
[attachment=1837:wdreg.zip]

я использовал gui-версию, потому что в случае ошибок она выкидывает диалог с обильным логом , есть и просто консольный вариант утилиты

хм, форум чего-то ругается при скачивании. Файлы безопасные так то о_О

[attachment=1838:__________.png]
mezmay,
14.10.2013, 12:13 Изменение высоты виджетов "на ходу"
можно применить QSplitter

на форму кладёшь оба контрола, выделяешь их с CTRL - сверху появятся кнопки объединения их с участием сплиттера
[attachment=1799:__________.png]
Анна,
26.7.2013, 7:43 Ошибка в отлове события KeyPress для таблицы
pharret31,

Цитата
Qt::Key_Return 0x01000004
Qt::Key_Enter 0x01000005 //Typically located on the keypad.

:)
pharret31,

8 страниц V   1 2 3 > » 
RSS Текстовая версия Сейчас: 27.3.2017, 13:17