Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: poru от Февраль 06, 2015, 12:45



Название: Как изменить расстояние между виджетами в какой-либо компоновке
Отправлено: poru от Февраль 06, 2015, 12:45
Как используя Qt Style Sheets изменить расстояние между "виджетами", которые скомпонованы в QHBoxLayout или QVBoxLayout?


Название: Re: Как изменить расстояние между виджетами в какой-либо компоновке
Отправлено: GreatSnake от Февраль 06, 2015, 13:03
Просто в лоб не получится.
QSS работает только с виджетами.


Название: Re: Как изменить расстояние между виджетами в какой-либо компоновке
Отправлено: Bepec от Февраль 06, 2015, 13:31
Ну если между этими виджетами есть разделяющий виджет, то вполне ему можно размер менять с помощью CSS.


Название: Re: Как изменить расстояние между виджетами в какой-либо компоновке
Отправлено: GreatSnake от Февраль 06, 2015, 13:42
Ну если между этими виджетами есть разделяющий виджет, то вполне ему можно размер менять с помощью CSS.
Ну это уж совсем через оное место. :(

Если очень хочется и есть возможность отнаследоваться от виджета с лэйаутом, то можно сделать так:
Код
C++ (Qt)
class LayoutWidget : public BaseWidget
{
Q_PROPERTY( int layoutSpacing READ layoutSpacing WRITE setLayoutSpacing )
public:
int layoutSpacing() const { return layout()->spacing(); }
void setLayoutSpacing( int v ) { layout()->setSpacing( v ); }
};

Код
CSS
LayoutWidget { property-layoutSpacing: 100 }


Название: Re: Как изменить расстояние между виджетами в какой-либо компоновке
Отправлено: poru от Февраль 06, 2015, 14:30
В горизонтальной компоновке 2 кнопки.
Код
CSS
QPushButton[text="Yes"] {
margin: 0 15 0 0;
padding: 5 0;
}
 
QPushButton[text="No"] {
margin: 0 0 0 15;
padding: 5 0;
}
 

Визуально расстояние между кнопками увеличилось. А хотелось бы и уменьшать. Если margin большой, то свободное пространство продолжает принимать клик от мышки. Выглядит как-то нелепо. Как исправить?