如何允许用户使用Qt设计器调整窗口中元素的大小?

时间:2016-06-17 16:30:16

标签: qt user-interface pyqt4 qt-designer qtgui

我希望允许使用我的应用程序的用户能够在我的窗口中的两个小部件之间拖动边界,这将调整两个小部件的大小(即,将其向下拖动,顶部变小,而底部变小,并且反之亦然)。

Qt设计器中是否有任何内容允许用户在某些约束内调整窗口中的元素大小?

谢谢

2 个答案:

答案 0 :(得分:9)

您所描述的内容称为QSplitter小部件。在Qt Designer中,您可以通过选择2个或更多小部件创建一个,然后单击顶部工具栏上的拆分器按钮。它与布局按钮位于同一位置。它会将这些小部件放在class Parent extends React.Component{ constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); this.handleClickWithRef = this.handeClickWithRef.bind(this); this.state = { triggerEvent: 0 }; } handleClick(e) { this.setState({ triggerEvent: this.state.triggerEvent+1 }); } handeClickWithRef(e){ this.refs.child.functionA(); } render() { return <div> <Child ref="child" onTrigger={this.state.triggerEvent} /> <button onClick={this.handleClick}>Click to trigger</button> <button onClick={this.handleClickWithRef}>Click to trigger using ref</button> </div>; } } class Child extends React.Component{ constructor(props) { super(props); } functionA(){ alert("With ref"); } componentWillReceiveProps(nextProps){ if(nextProps.onTrigger !== 0 && nextProps.onTrigger !== this.props.onTrigger){ alert("Your event here"); } } render(){ return <div>Child Component</div> } } 内。您仍然需要将拆分器小部件放在另一个布局中。它将在它们之间创建一个句柄,以便您调整每个窗口小部件获得的部分。

enter image description here

答案 1 :(得分:0)

您正在寻找QDockWidget。它可以完成您上面描述的所有内容以及更多内容。用户可以将窗口小部件停靠到窗口的不同侧面,从而更改哪个窗口小部件位于顶部或底部。您可以自定义最小和最大尺寸以及默认尺寸。