Просмотр сообщений
|
Страниц: 1 ... 135 136 [137]
|
2042
|
Qt / 2D и 3D графика / QPainter: полупрозрачный цвет
|
: Февраль 21, 2007, 12:23
|
На виджете нарисованы некие объекты. Возможно ли с помощью QPainter нарисовать на этом виджете, скажем, прямоугольник rect(x, y, width, height) цвета color так, чтобы фон (т.е. объекты под прямоугольником) внутри этого прямоугольника не затёрся, а подсветился цветом color ? Можно конечно использовать drawTiledPixmap(x, y, width, height, pixmap_with_alpha) с полупрозрачным пиксмапом, но это очень медленно, особенно при перерисовке
|
|
|
2043
|
Qt / Пользовательский интерфейс (GUI) / Сокрытие заголовка окна.
|
: Февраль 19, 2007, 13:36
|
У меня в XP всё работает: #include <qapplication.h> #include <qwidget.h> #include <qdialog.h>
#include <stdio.h>
class M : public QWidget { public: M() : QWidget() { QDialog *d = new QDialog(this, "dialog", true, WStyle_Customize | Qt::WStyle_NoBorder); d->setCaption("Dialog"); d->exec(); }
~M() {} };
int main( int argc, char **argv ) { QApplication a( argc, argv );
M *m = new M;
a.setMainWidget(m);
m->show();
int result = a.exec();
delete m;
return result; }
Диалог появляется без рамки. Кстати, ээээ, у тебя в конструкторе MainForm() 3 параметра, а не 4. A QDialog() принимает 4 параметра.
|
|
|
2044
|
Qt / Общие вопросы / QT 4.2.2 Медленная работа сигнал-слот
|
: Февраль 16, 2007, 14:49
|
это дублирование кода из QProgressBar. Так тоже есть проверки на текущее значение != новое значение. Дело не в значениях, а в том, что отрисовка текущего прогресса с помощью QStyle работает крайне медленно.
|
|
|
2046
|
Qt / Общие вопросы / Подскажите, как лучше сделать обработку кнопок?
|
: Февраль 15, 2007, 12:12
|
Спасибо! Только я пока не понял: Один str ставитс несколько кнопок и они будут видны? Изучайте С++ Главное, что вы создаёте новые объекты. Где будут храниться указатели на них в данном примере не важно, поэтому можно юзать один локальный указатель.
|
|
|
2047
|
Qt / Общие вопросы / Подскажите, как лучше сделать обработку кнопок?
|
: Февраль 15, 2007, 11:35
|
void Class::initClass() { QGroupBox *stringsGroup = new QButtonGroup(tr("Strings")); Strings *str;
str = new Strings("&1 Vriant",this,"some commands"); stringsGroup->addButton(str,1);//id connect(str, SIGNAL(clicked()), this, SLOT(slotButtonPressed()));
str = new Strings("&2 Vriant",this,"some commands2"); stringsGroup->addButton(str,2);//id connect(str, SIGNAL(clicked()), this, SLOT(slotButtonPressed()));
str = new Strings("&3 Vriant",this,"some commands3"); stringsGroup->addButton(str,3);//id connect(str, SIGNAL(clicked()), this, SLOT(slotButtonPressed()));
layout->addWidget(stringsGroup, 2, 0); }
void Class::slotButtonPressed() { Strings *s = dynamic_cast<Strings *>(sender());
s->... }
?
|
|
|
2049
|
Qt / Пользовательский интерфейс (GUI) / [QT3] фон для QListViewItem-а
|
: Февраль 15, 2007, 11:19
|
Для QListViewItem-а можно задать свой фон, переопределив paintCell(): void MListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align) { QColorGroup cc = cg;
// фон будет красным, если надо if(shouldBeRed()) cc.setColor(QColorGroup::Base, Qt::red);
// нарисовать QListViewItem::paintCell(p, cc, column, width, align); }
А вот как отрисовать фон для итема по всей ширине вьюпорта, например как в ACDSee ? Если использовать void MListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align) { QColorGroup cc = cg;
// простой хак для отрисовки региона слева от элемента p->save(); p->translate(-100, 0); p->fillRect(0,0,100,16,gray); p->restore();
if(shouldBeRed()) cc.setColor(QColorGroup::Base, Qt::red);
QListViewItem::paintCell(p, cc, column, width, align); }
В результате рисуется необходимая область слева от итема, НО затираются ветки дерева с плюсиками ('+'), т.е. во вьюпорте видны ТОЛЬКО итемы. Бьюсь с этой проблемой уже давно, чего только не перепробовал. Может кто-нибудь что-нибудь подскажет ? Спасибо.
|
|
|
|
|