crossplatform.ru

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

История благодарностей участнику DmP ::: Спасибо сказали: 15 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
16.3.2010, 18:25 как программно изменить ширину QDockWidget?
igor_bogomolov, если нужно изменить размера в конструкторе, то можно попробовать такой вариант (хак):
#include <../src/gui/widgets/qmainwindowlayout_p.h>

MainForm::MainForm() : QMainWindow()
{
    setupUi(this);

    ((QMainWindowLayout*)layout())->layoutState.dockAreaLayout.docks[QInternal::BottomDock].rect = QRect(0, 0, 0, 100);
}

В данном случае изменяется размер нижнего дока, работает для 4.5.
Обсуждалось здесь.
igor_bogomolov,
11.3.2010, 17:44 Qt 4.7 TP frg10, igor_bogomolov, Litkevich Yuriy, molchanoviv, ViGOur,
1.12.2009, 14:53 Qt 4.6.0 Kagami, Tonal,
26.11.2009, 13:56 Задачка про электрика
Цитата(grio @ 26.11.2009, 13:33) *
Отлично ) А теперь осталось правильно ответить на главный вопрос задачи.

Так получается три рейса. :) Я их пронумеровал. По идее после второго рейса вешаем ярлыки на первой стороне, а после трейтьего рейса вешаем ярлыки на второй стороне.
AD,
25.5.2009, 19:52 QODBC и MySQL
Цитата(vanvo @ 25.5.2009, 19:19) *
DmP, подскажи как написать для ODBC, если БД лежит на удаленной машине. БД на MySQL.

Хороший вопрос. :) Если бы я знал ответ.
Как вариант, через "Панель управления\Администрирование\Источник данных (ODBC)" создать файловый DSN и настроить в нем все что нужно, потом найти результирующий файл, и посмотреть его содержимое, это очень облегчит поиск ответа.


Или погуглить на тему "ODBC MySQL", вот попалась неплохая ссылка например.
vanvo,
24.5.2009, 16:52 QODBC и "MS Access" (*.mdb)
Цитата(Litkevich Yuriy @ 24.5.2009, 16:49) *
вообще путь с пробелами это от лукавого, это даже мелкосовтовцы поняли, в Висте этот каталог только ради совместимости существует.
Попробуй его в кавычки взять, а лучше вообще в Program files ничего не клади.

Ни каких кавычек не надо, следующий фрагмент прекрасно работает:
    QString dbName = "C:\\Program Files\\Xxx Xxx\\xxx.mdb";
    QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QODBC"));
    QString conn = QString("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1;").arg(dbName);
    db.setDatabaseName(conn);
    if (!db.open())
    {
        qDebug() << db.lastError().text();
    }
root,
8.5.2009, 20:12 Глобальные Static переменные
Цитата(defnull @ 8.5.2009, 20:45) *
Добавил в сpp файлы где использую Transac::cre

extern int Transac::cre;


extern пишется в заголовочном файле enum.h:
namespace Transac
{
extern int cre;
};


В одном файле из *.cpp, например, в enum.cpp:
namespace Transac
{
int cre = 3;
};

Должно работать.
defnull,
30.4.2009, 10:45 RegisterHotKey
Вот сделано на основе libqxt, может не очень красиво но работает:
#include <qt_windows.h>

MyForm::MyForm()
    : QMainWindow()
{
    setupUi(this);

    m_hotKeyId1 = 0;
    m_hotKeyId2 = 0;

    registerHotKey();
}

MyForm::~MyForm()
{
    unregisterHotKey();
}

bool MyForm::winEvent(MSG* message, long* result)
{
    if (message->message == WM_HOTKEY)
    {
        const int virtualKeyCode = HIWORD(message->lParam);
        const int modifiers = LOWORD(message->lParam);
        const int CtrlMod = MOD_CONTROL;
        const int CtrlShiftMod = MOD_CONTROL | MOD_SHIFT;

        if ((virtualKeyCode == VK_F2) && (modifiers == CtrlMod))
        {
            if (!m_actXXXMode->isChecked())
            {
                m_actXXXMode->activate(QAction::Trigger);
            }
        }
        if ((virtualKeyCode == VK_F2) && (modifiers == CtrlShiftMod))
        {
            if (m_actXXXMode->isChecked())
            {
                m_actXXXMode->activate(QAction::Trigger);
            }
        }
    }
    return false;
}

inline void RegisterHotKeyPrivate(HWND winId, UINT modifiers, UINT vk, int& hotKeyId)
{
    int id = (modifiers << 8) | vk;
    BOOL res = ::RegisterHotKey(winId, id, modifiers, vk);

    if (res != FALSE)
        hotKeyId = id;
}

void MyForm::registerHotKey()
{
    if (m_hotKeyId1 || m_hotKeyId2)
        unregisterHotKey();

    UINT modifiers = MOD_CONTROL; // MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN
    UINT vk = VK_F2;
    RegisterHotKeyPrivate((HWND)winId(), modifiers, vk, m_hotKeyId1);

    modifiers = MOD_CONTROL | MOD_SHIFT;
    RegisterHotKeyPrivate((HWND)winId(), modifiers, vk, m_hotKeyId2);
}

void MyForm::unregisterHotKey()
{
    if ((m_hotKeyId1 == 0) && (m_hotKeyId2 == 0))
        return;

    ::UnregisterHotKey((HWND)winId(), m_hotKeyId1);
    m_hotKeyId1 = 0;
    ::UnregisterHotKey((HWND)winId(), m_hotKeyId2);
    m_hotKeyId2 = 0;
}
jim1406,
5.2.2009, 8:18 Делаем как Squish for QT
Цитата(Litkevich Yuriy @ 5.2.2009, 0:52) *
Просто догадка. Возможно программа находит указатель qApp (QApplication), а уже через него получает все остальное: QApplication::allWidgets ()

Скорее всего так и есть, на демо-ролике показана, что программу запускает сам Squish, потом он по видимому запускает свой поток в загруженном приложении, определяет версию Qt, потом находит QCoreApplication::self - думаю найти эту переменную в памяти не так сложно, так как она потомок QObject. А все остальное дело техники.
alexus_ru,
15.9.2008, 3:48 Стратегия сетевого приложения.
Цитата(ViGOur @ 14.9.2008, 23:21) *
Неужели нет другого способа?

SQLite поддерживает простые триггеры, поставте перехват на INSERT, DELETE и UPDATE:
http://sqlite.org/lang_createtrigger.html
dzyk,

RSS Текстовая версия Сейчас: 25.4.2024, 20:25