crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Небольшая проблемка с QDial
Andrewshkovskii
  опции профиля:
сообщение 17.3.2009, 19:15
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


не знаю даже как охарактеризовать...В скриншоте 3 QDiala, и дело в том, что они реагируют на мышкку без фокуса на них. т.е : если кликать на прямоугольник с цветом - QDial изменит своё значение, будет "следить" за мышкой. Как можно это убрать?:)
Такой проблемы нет в превьюшка из дизайнера..а вот когда вручную я написал, такая бага. Ничего кроме размешения виджета на форме, изменения макс.и мин. принимающих значений+wrapping я не делал...в чем может быть проблема?

Сообщение отредактировал Andrewshkovskii - 17.3.2009, 19:50
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.3.2009, 20:28
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 17.3.2009, 22:15) *
дело в том, что они реагируют на мышкку без фокуса на них
все три?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 17.3.2009, 20:48
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


нет, в зависимости от зоны нажатия..блин, это надо показывать в гифке или бинарник могу выслать..в общем зона реагирования Qdial больше, чем нужно..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.3.2009, 21:44
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 17.3.2009, 23:48) *
это надо показывать в гифке или бинарник могу выслать
ты лучше маленьки й тестовый проект сделай, от биниря толку ни какого
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 18.3.2009, 0:06
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


небольшой примерчик накатал :
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QWidget>
#include <QDial>
#include <QHBoxLayout>
#include <QPushButton>

class MainWindow : public QWidget
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QDial *dial;
    QPushButton *btn;
    QHBoxLayout *layout;

};

#endif // MAINWINDOW_H

MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    dial = new QDial;
    layout=new QHBoxLayout;
    btn = new QPushButton;
    layout->addWidget(dial);
    layout->addWidget(btn);
    this->setLayout(layout);
}

MainWindow::~MainWindow()
{

}


#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}


В общем, если фокус(да и без фокуса, если кликнуть там мышкой он на диал ставится) попадает на QDial, то зажиманием и перетаскиванием мышки на таком(линией отчерчена граница реагирования QDial :
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.3.2009, 0:25
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ну все нормально, ведь QDial он не круглый, а квадратный как и все виджеты. На основном виджете их всего два, и соответсвенно они занимают вдвоем почти все место, кроме зазоров между виджетами и границами окна
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 18.3.2009, 0:27
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Бр, а в моем приложении их вообще 3, 3 кнопочки и 1 QPainter.. тоесть от такого фокуса не избавиться?или поставить какой-нибудь "Жесткий" фокус?
может просто изменить геометрию виджета?хотя он в целом сожмется..

Сообщение отредактировал Andrewshkovskii - 18.3.2009, 0:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.3.2009, 0:40
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


вот тебе переделаный конструктор, для понимания (там виджеты раскрашены):
MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    layout=new QHBoxLayout;
    
    dial = new QDial;
    QPalette p1(Qt::lightGray);
    dial->setPalette(p1);
    dial->setAutoFillBackground(true);
    
    btn = new QPushButton;
    QPalette p2(Qt::darkYellow);
    btn->setPalette(p2);
    btn->setAutoFillBackground(true);    
    
    layout->addWidget(dial);
    layout->addWidget(btn);
    this->setLayout(layout);
}
скомпилируй и попробуй в работе

добавлю: и в дизайнере все тоже самое.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 18.3.2009, 0:42
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


ух, теперь все ясно стало,спасибо:)Что-нибудь придумаю..а вот проблема в другом, что в дизайнере если такую-же форму генерировать, то такой проблемы нет.
Геометрию виджета надо менять, как я понял..

Сообщение отредактировал Andrewshkovskii - 18.3.2009, 0:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.3.2009, 0:46
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 18.3.2009, 3:27) *
может просто изменить геометрию виджета?
можешь жестко задать размеры каждого потенциометра, почему-то его предпочитаемый размер не квадратный, а прямоугольный

Цитата(Andrewshkovskii @ 18.3.2009, 3:42) *
что в дизайнере если такую-же форму генерировать, то такой проблемы нет.
все тоже самое
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 7.7.2020, 21:35