我正在尝试将type Primitive = string | Function | number | boolean | Symbol | undefined | null
type DeepOmitHelper<T, K extends keyof T> = {
[P in K]: //extra level of indirection needed to trigger homomorhic behavior
T[P] extends infer TP ? // distribute over unions
TP extends Primitive ? TP : // leave primitives and functions alone
TP extends any[] ? DeepOmitArray<TP, K> : // Array special handling
DeepOmit<TP, K>
: never
}
type DeepOmit<T, K> = T extends Primitive ? T : DeepOmitHelper<T,Exclude<keyof T, K>>
type DeepOmitArray<T extends any[], K> = {
[P in keyof T]: DeepOmit<T[P], K>
}
type Input = {
__typename: string,
a: string,
nested: {
__typename: string,
b: string
}
nestedArray: Array<{
__typename: string,
b: string
}>
nestedTuple: [{
__typename: string,
b: string
}]
}
type InputWithoutKey = DeepOmit<Input, '__typename'>
let s: InputWithoutKey = {
a: "",
nested: {
b:""
},
nestedArray: [
{b: ""}
],
nestedTuple: [
{ b: ""},
]
}
列自动适合tableWidget
的可用区域
目前,我的布局如下图所示。可以看出,右边没有多余的空白,我想在四列之间均匀地填充。
我不打算将tableWidget
设置为horizontalHeaderStretch
(如下所示)。这样会不均匀地延伸最后一列。
我尝试将True
设置为sizeAdjustPolicy
,但看不到明显的差异。
可以找到类似的问题here,但是我没有直接从设计者那里提及如何进行此操作。
关于如何做到这一点的任何建议?预先感谢。
答案 0 :(得分:1)
您指定的功能无法使用Qt Designer完成。在Qt Designer中,只能修改通过DESIGNABLE标志启用的Q_PROPERTY,但是setSectionResizeMode()
不是Q_PROPERTY而是QHeaderView的方法,该方法在docs中指示:
DESIGNABLE属性指示该属性是否应为 在GUI设计工具(例如Qt Designer)的属性编辑器中可见。 大多数属性是DESIGNABLE(默认)。代替true或 false,则可以指定一个布尔成员函数。
因此,您必须以编程方式进行操作:
header = self.table.horizontalHeader()
header.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch)
header.setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
# ...