scrollarea fix
This commit is contained in:
parent
b7ad6ed815
commit
8f7bde6e0a
@ -5,7 +5,7 @@ if(CCACHE_PROGRAM)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X deployment version")
|
||||
|
||||
function(AddCommonConfig addonName)
|
||||
target_compile_features(${addonName} PRIVATE
|
||||
|
||||
@ -51,7 +51,7 @@ QScrollAreaWrap::QScrollAreaWrap(const Napi::CallbackInfo& info)
|
||||
|
||||
this->rawData = extrautils::configureQWidget(
|
||||
this->getInternalInstance(), this->getInternalInstance()->getFlexNode(),
|
||||
true);
|
||||
false);
|
||||
}
|
||||
|
||||
Napi::Value QScrollAreaWrap::ensureVisible(const Napi::CallbackInfo& info) {
|
||||
|
||||
161
src/demo.ts
161
src/demo.ts
@ -1,118 +1,69 @@
|
||||
import { QMainWindow, QWidget } from '.';
|
||||
import { QGridLayout } from './lib/QtWidgets/QGridLayout';
|
||||
import { QLabel } from './lib/QtWidgets/QLabel';
|
||||
import { QTreeWidget } from './lib/QtWidgets/QTreeWidget';
|
||||
import { QTreeWidgetItem } from './lib/QtWidgets/QTreeWidgetItem';
|
||||
import { QIcon } from './lib/QtGui/QIcon';
|
||||
import { QDesktopWidget } from './lib/QtWidgets/QDesktopWidget';
|
||||
import { QApplication } from './lib/QtGui/QApplication';
|
||||
import { QScrollArea } from './lib/QtWidgets/QScrollArea';
|
||||
import { FlexLayout } from './lib/core/FlexLayout';
|
||||
import { WidgetEventTypes } from './lib/core/EventWidget';
|
||||
import { SizeConstraint } from './lib/QtWidgets/QLayout';
|
||||
|
||||
const win = new QMainWindow();
|
||||
win.resize(500, 500);
|
||||
|
||||
// ex 1
|
||||
const desktop = new QDesktopWidget();
|
||||
const availableGeometry = desktop.availableGeometry();
|
||||
const screenGeometry = desktop.screenGeometry();
|
||||
console.log(availableGeometry.width() + 'x' + availableGeometry.height());
|
||||
console.log(screenGeometry.width() + 'x' + screenGeometry.height());
|
||||
console.log(desktop.screenNumber());
|
||||
// ex 2
|
||||
const qApp = QApplication.desktop();
|
||||
const availableGeometry2 = qApp.availableGeometry();
|
||||
const screenGeometry2 = qApp.screenGeometry();
|
||||
console.log(availableGeometry2.width() + 'x' + availableGeometry2.height());
|
||||
console.log(screenGeometry2.width() + 'x' + screenGeometry2.height());
|
||||
console.log(qApp.screenNumber());
|
||||
win.setObjectName('win');
|
||||
|
||||
const outer = new QWidget();
|
||||
const outerLayout = new QGridLayout();
|
||||
outer.setLayout(outerLayout);
|
||||
outer.setInlineStyle('background-color: red');
|
||||
console.log(outerLayout.rowCount(), outerLayout.columnCount());
|
||||
outerLayout.setColumnStretch(0, 2);
|
||||
outerLayout.setRowStretch(1, 2);
|
||||
outerLayout.setColumnMinimumWidth(1, 200);
|
||||
outerLayout.setRowMinimumHeight(0, 100);
|
||||
outerLayout.setHorizontalSpacing(20);
|
||||
outerLayout.setVerticalSpacing(50);
|
||||
outer.setObjectName('outer');
|
||||
outer.setInlineStyle(`border: 2px solid pink;`);
|
||||
const scrollArea = new QScrollArea();
|
||||
scrollArea.setObjectName('scrollArea');
|
||||
outer.setLayout(new FlexLayout());
|
||||
|
||||
console.log(outerLayout.columnStretch(0), outerLayout.columnStretch(1));
|
||||
console.log(outerLayout.rowMinimumHeight(0), outerLayout.rowMinimumHeight(1));
|
||||
console.log(outerLayout.verticalSpacing(), outerLayout.horizontalSpacing());
|
||||
scrollArea.setInlineStyle(`flex: 1; min-height:0; align-self:'stretch';border: 2px solid green;`);
|
||||
const sview = new QWidget();
|
||||
sview.setObjectName('sview');
|
||||
sview.setLayout(new FlexLayout());
|
||||
sview.setInlineStyle(`border:2px solid yellow; min-width: 100%;`);
|
||||
|
||||
const columnOne = new QLabel();
|
||||
columnOne.setText('One');
|
||||
columnOne.setInlineStyle('background-color: blue');
|
||||
outerLayout.addWidget(columnOne, 0, 0);
|
||||
|
||||
const columnTwo = new QLabel();
|
||||
columnTwo.setText('Two');
|
||||
columnTwo.setInlineStyle('background-color: green');
|
||||
outerLayout.addWidget(columnTwo, 0, 1);
|
||||
|
||||
const columnThree = new QLabel();
|
||||
columnThree.setText('Three');
|
||||
columnThree.setInlineStyle('background-color: yellow');
|
||||
outerLayout.addWidget(columnThree, 1, 0);
|
||||
|
||||
const columnFour = new QLabel();
|
||||
columnFour.setText('Four');
|
||||
columnFour.setInlineStyle('background-color: orange');
|
||||
outerLayout.addWidget(columnFour, 1, 1);
|
||||
|
||||
const tree = new QTreeWidget();
|
||||
tree.setColumnCount(2);
|
||||
tree.setHeaderLabels(['First Column', 'Second Column']);
|
||||
tree.setSortingEnabled(true);
|
||||
tree.setInlineStyle('font-size: 24px');
|
||||
outerLayout.addWidget(tree, 2, 0, 2, 0);
|
||||
|
||||
console.log(outerLayout.rowCount(), outerLayout.columnCount());
|
||||
|
||||
const myImage = './website/static/img/logo.png';
|
||||
const icon = new QIcon(myImage);
|
||||
|
||||
const item1 = new QTreeWidgetItem();
|
||||
item1.setText(0, `item-1`);
|
||||
item1.setText(1, `1-item-1`);
|
||||
item1.setIcon(1, icon);
|
||||
const item2 = new QTreeWidgetItem();
|
||||
item2.setText(0, `item-2`);
|
||||
item2.setText(1, `1-item-2`);
|
||||
item2.setIcon(1, icon);
|
||||
const item3 = new QTreeWidgetItem();
|
||||
item3.setText(0, `item-3`);
|
||||
item3.setText(1, `1-item-3`);
|
||||
item3.setIcon(1, icon);
|
||||
const item4 = new QTreeWidgetItem();
|
||||
item4.setText(0, `item-4`);
|
||||
item4.setText(1, `1-item-4`);
|
||||
item4.setIcon(1, icon);
|
||||
const item5 = new QTreeWidgetItem();
|
||||
item5.setText(0, `item-5`);
|
||||
item5.setText(1, `1-item-5`);
|
||||
item5.setIcon(1, icon);
|
||||
const item6 = new QTreeWidgetItem();
|
||||
item6.setText(0, `item-6`);
|
||||
item6.setText(1, `1-item-6`);
|
||||
item6.setIcon(1, icon);
|
||||
|
||||
console.info('item6.icon()=', item6.icon(1));
|
||||
|
||||
tree.addTopLevelItem(item1);
|
||||
tree.insertTopLevelItems(0, [item2, item3]);
|
||||
tree.addTopLevelItems([item4, item5]);
|
||||
tree.insertTopLevelItem(2, item6);
|
||||
|
||||
// Add children to item1
|
||||
const c1item1 = new QTreeWidgetItem(item1);
|
||||
c1item1.setText(0, `c1item1`);
|
||||
c1item1.setText(1, `c1item2`);
|
||||
const c1item2 = new QTreeWidgetItem(item1);
|
||||
c1item2.setText(0, `c1item1`);
|
||||
c1item2.setText(1, `c1item2`);
|
||||
const textView = new QLabel();
|
||||
textView.setObjectName('textView');
|
||||
textView.setText(`
|
||||
a
|
||||
a
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
a
|
||||
a
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
a
|
||||
a
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
a
|
||||
a
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
a
|
||||
a
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
a
|
||||
a
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
a
|
||||
a
|
||||
`);
|
||||
|
||||
sview.layout?.addWidget(textView);
|
||||
scrollArea.setWidget(sview);
|
||||
outer.layout?.addWidget(scrollArea);
|
||||
outer.addEventListener(WidgetEventTypes.Resize, () => {
|
||||
// console.log('scrollarea min +' + scrollArea.minimumSize().width(), 'X', scrollArea.minimumSize().height());
|
||||
// console.log('scrollarea size +' + scrollArea.size().width(), 'X', scrollArea.size().height());
|
||||
});
|
||||
win.setCentralWidget(outer);
|
||||
win.show();
|
||||
(global as any).win = win;
|
||||
|
||||
// <Window windowTitle="Hello 👋🏽" minSize={minSize} styleSheet={styleSheet}>
|
||||
// <View>
|
||||
// <ScrollArea style="flex: 1; border: 1px solid green;">
|
||||
// <View style="border:2px solid yellow;">
|
||||
// <Comp></Comp>
|
||||
// </View>
|
||||
// </ScrollArea>
|
||||
// </View>
|
||||
// </Window>
|
||||
|
||||
@ -67,6 +67,7 @@ export class QMainWindow extends NodeWidget<QMainWindowSignals> {
|
||||
const centralWidget = this.centralWidget;
|
||||
this.centralWidget = null;
|
||||
if (centralWidget) {
|
||||
centralWidget.setFlexNodeSizeControlled(false);
|
||||
this.native.takeCentralWidget();
|
||||
return centralWidget;
|
||||
}
|
||||
|
||||
@ -42,7 +42,6 @@ export class QScrollArea extends QAbstractScrollArea<QScrollAreaSignals> {
|
||||
super(native);
|
||||
this.native = native;
|
||||
this.setNodeParent(parent);
|
||||
this.setWidgetResizable(true);
|
||||
}
|
||||
setAlignment(alignment: AlignmentFlag): void {
|
||||
this.setProperty('alignment', alignment);
|
||||
@ -52,9 +51,6 @@ export class QScrollArea extends QAbstractScrollArea<QScrollAreaSignals> {
|
||||
}
|
||||
setWidgetResizable(resizable: boolean): void {
|
||||
this.setProperty('widgetResizable', resizable);
|
||||
if (this.contentWidget) {
|
||||
this.contentWidget.setFlexNodeSizeControlled(resizable);
|
||||
}
|
||||
}
|
||||
widgetResizable(): boolean {
|
||||
return this.property('widgetResizable').toBool();
|
||||
@ -68,7 +64,6 @@ export class QScrollArea extends QAbstractScrollArea<QScrollAreaSignals> {
|
||||
setWidget(widget: NodeWidget<any>): void {
|
||||
this.contentWidget = widget;
|
||||
this.native.setWidget(widget.native);
|
||||
this.contentWidget.setFlexNodeSizeControlled(this.widgetResizable());
|
||||
}
|
||||
widget(): NodeWidget<any> | null {
|
||||
if (this.contentWidget) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user