crossplatform.ru

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

История благодарностей участнику Константин ::: Спасибо сказали: 15 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
11.3.2009, 0:20 delegate у QComboBox
либо бага, либо сам накосячил.
попробуй навесить какой-нть кутэшный делегат вместо своего и посмотри как будет себя вести вьюха со скроллом.
lucifer_vrn,
9.3.2009, 21:56 delegate у QComboBox
нет
lucifer_vrn,
19.2.2009, 1:17 Не удается программно изменять значения модели БД
для ManualSubmit в этих методах просто с базой работа не происходит - чтение в select и запись в submit
Rocky,
18.2.2009, 16:49 Exec threads etc...
Цитата(Гость_me_* @ 18.2.2009, 16:42) *
а дальше уже ловить успешное подключение и действовать дальше ?

не забыв конечнео же сделать connectы всё какие нужно...

именно. в таком случае при невозможности соединиться (connectToHost) можно выйти и завершить поток, даже не запуская его петлю событий (т.к. вряд ли тебе нужен поток с неподключённым фтп-клиентом)
defnull,
17.2.2009, 20:44 Не удается программно изменять значения модели БД
/* от дурная башка */ ...сначала просто поинтересовался "почему так?", потом, не глядя на код выше, три перекочевало в два, а теперь уже хрен знает отчего я это ляпнул...дожно быть, что-то показалось )

Цитата(Rocky @ 17.2.2009, 20:03) *
Ну, если по правилам хорошего тона )) нужны именно ключи к каждой строке таблицы, ок, пусть будут.

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

ок. Только вот поиска у меня не будет никакого по таблице. БД - это просто хранилище информации, которую программа считывает при запуске и хранит ее в своих внутренних структурах/классах/контейнерах (в основном std::set). И поиск ведется уже средствами самого std::set, и здесь есть уникальное поле.

тут не просто правила хорошего тона. поиска может и не будет, а редактировать записи предполагается - склтаблмодель будет работать значительно эффективнее с таблицами, имеющими PK, чем с таблицами, таковых не имеющими. в частности ведь гораздо проще и быстрее обработать `WHERE id=5`, чем `WHERE id=5 AND PipeType=uhpoiuhfp AND D_outside=hopwojdpeo AND d_inside=joifjweoq AND Roughness=idjidj AND Lamda=lamda`
Rocky,
17.2.2009, 2:39 Выполнить после нажатия на кнопку
Цитата(micle7 @ 17.2.2009, 1:12) *
Скажите еще, если не сложно, как мне вывести переменную "a" на lcd, а переменную "c" на lcd1


#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <QLCDNumber>
#include <iostream>
#include <QVBoxLayout>

class MyWidget : public QWidget
{
Q_OBJECT
public:
     MyWidget(QWidget *parent = 0);
public slots:
     int btnClick();
private:
     QLCDNumber *lcd;
     QLCDNumber *lcd1;
};

MyWidget::MyWidget(QWidget *parent)
     : QWidget(parent)
{
     lcd = new QLCDNumber(3);
     lcd->display(77);

     lcd1 = new QLCDNumber(3);

     QPushButton *ok = new QPushButton(tr("Ok"), this);
     connect(ok, SIGNAL(clicked()), this, SLOT(btnClick()));
     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(ok);
     layout->addWidget(lcd);
     layout->addWidget(lcd1);
     setLayout(layout);
}

int  MyWidget::btnClick()
{
int a = 5;
int b = a + 2;
int c = b + 5;

     lcd->display(a);
     lcd1->display(c);
}

int main(int argc, char *argv[])
{
     QApplication app(argc, argv);
     MyWidget widget;
     widget.show();
     return app.exec();
}
#include "hello.moc"


micle7, учи плюсы, учи кутэ, читай ассистант, задавай вопросы в форуме (весьма желательно именно в такой последовательности)



теперь я понимаю как набить столько "спасибо"-в, как у Юрия :)
жаль, у меня терпения не хватит...
micle7,
16.2.2009, 22:01 Консоль для вывода log'ов
я всегда говорю, что сначала нужно почитать документацию, если чего-то не понимаешь (в крайнем случае спросить)
qInstallMsgHandler() перенаправляет сообщения в clog, который связан с лог-файлом. такая связь сделана намеренно - чтобы была возможность работы без лог-файла только с выводом на консоль.
итого:
пользоваться данным сниппетом нужно следующим образом:
qDebug() << "My mesage:" << myVar;
qWarning() << "My mesage:" << myVar;
qCritical() << "My mesage:" << myVar;
NordWest,
12.2.2009, 17:39 Консоль для вывода log'ов
static QDataStream* clog = 0;

void customMessageHandler(QtMsgType type, const char* msg)
{
    static const char* msgType[] =
    {
        "Debug    : ",
        "Warning  : ",
        "Critical : ",
        "Fatal    : "
    };

    static QTextStream cout(stdout);
    static QTextStream cerr(stderr);

    cerr << msgType[type] << msg << endl;
    if(clog && clog->device())
        *clog << type << msg;
    if(type == QtFatalMsg)
    {
        cerr << "aborting..." << endl;

#if defined(Q_CC_MSVC) && defined(QT_DEBUG) && defined(_CRT_ERROR) && defined(_DEBUG)
        int reportMode = _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW);
        _CrtSetReportMode(_CRT_ERROR, reportMode);
        int ret = _CrtDbgReport(_CRT_ERROR, __FILE__, __LINE__, QT_VERSION_STR, msg);
        if(ret == 0 && reportMode & _CRTDBG_MODE_WNDW)
            return;
        else if(ret == 1)
            _CrtDbgBreak();
#endif

#if defined(Q_OS_UNIX) && defined(QT_DEBUG)
        abort();
#else
        exit(1);
#endif
    }
}

int main(int argc, char** argv)
{
    qInstallMsgHandler(customMessageHandler);

    QApplication app(argc, argv);

    QFile* logFile = new QFile(_path_to_logdir_ + "/messages.log");
    if(logFile->open(QFile::WriteOnly | QIODevice::Append | QIODevice::Unbuffered))
        clog = new QDataStream(logFile);

//...

    int exit_code = app.exec();

    delete clog;
    clog = 0;
    delete logFile;
    logFile = 0;

    qInstallMsgHandler(0);

    return exit_code;
}

благодарите :)

пример простой - усложняйте под задачу.
NordWest,
11.2.2009, 22:56 QComboBox + список совпадений
Цитата(Litkevich Yuriy @ 11.2.2009, 22:00) *
А почему аварийно завершается могу сказать, смотри:
Цитата
void QComboBox::addItems ( const QStringList & texts )

в этой функции принимается ссылка на список, а список у тебя создан как обычная переменная, как только функция завершится, то и удалится эта переменная. Соответственно QComboBox будет обращатся к неправильной области памяти

ай-ай-ай, Юрий :)
QStringList - это обёртка над QList<QString>, а QList, как известно, шаренный тип. т.о. проблема никак не в передаче по ссылке...
Litkevich Yuriy,
11.2.2009, 16:22 получение фокуса
хочешь поймать событие для loginLineEdit и ловишь его в MainWindowImpl? чуешь подвох? :)
либо перегрузи focusInEvent в loginLineEdit, илбо фильтруй события (читать QObject::installEventFilter). второе удобнее.

зы. не забывай вызывать методы суперкласса из перегруженных, если не знаешь что в них реализовано!

void MainWindowImpl::focusInEvent(QFocusEvent * event)
{
    QMainWindow::focusInEvent(event);
    //...
}
berserk,
11.2.2009, 6:15 Секреты и интересные возможности Qt
ну и секреты у вас :)
но всё-равно внесу свои пять копеек:

если в кастомном виджете в paintEvent используется `setOpacity(a)` для активного Q(|Style)Painter, где `a<1.0` (например, эффект плавного показа/скрытия виджета), и у виджета имеется родитель, то соседи родителя получат такой же фактор прозрачности через /* кривую */ групповую прозрачность.
чтобы этого избежать, необходимо использовать сохранение/восстановление состояния QPainter:
void MyWidget::paintEvent(QPaintEvent*)
{
    QPainter painter(this);
    painter.save();
    painter.setOpacity(this->currentOpacityValue());

    //painter.drawSomething(...);
    painter.restore();
}

вышесказанное верно для Qt < 4.5, в 4.5 групповая прозрачность забыта, как страшный сон...
Day, hxr3Wawd9g1, Алексей1153,
10.2.2009, 15:43 MySQL, -static, ошибки при компиляции примеров
вероятно, зерлинг скачал пакет "виндовз эссеншиалз", в котором только дллки. для статической сборки нужен полный пакет - выше привёл ссылку на него.
zerling,
10.2.2009, 14:37 Изображения в заголовке QTableView
а почитать про Qt::ItemDataRole?
Цитата
Qt::DecorationRole 1 The data to be rendered as a decoration (usually an icon).
Qt::BackgroundRole 8 The background brush used for items rendered with the default delegate.


если этого недостаточно, можно унаследоваться от QHeaderView...
fsMark,

RSS Текстовая версия Сейчас: 23.5.2022, 14:11