我找不到在QTabWidget中设置文本对齐方式.
在我创建了这个小部件的实例之后,我将其tabPosition属性设置为West,但我希望它在水平方向上显示文本/标签.我已经看了Qt的样式表,但正如你所看到的,text-align属性只能在QPushButton和QProgressBar上设置.
我已经在网上搜索了,但我刚发现了一个bug报告,一个未回答的问题,最后是一个建议重新实现paint()方法的用户.也许我会解决,但我使用Python(PyQt或PySide),我不知道该怎么做.
你能帮助我吗?
编辑:感谢Teukamm,我写了一些代码:
from PyQt4 import QtGui, QtCore
class HorizontalTabWidget(QtGui.QTabBar):
def paintEvent(self, event):
for index in range(self.count()):
painter = QtGui.QPainter()
painter.begin(self)
painter.setPen(QtCore.Qt.blue);
painter.setFont(QtGui.QFont("Arial", 10));
tabRect = self.tabRect(index)
painter.drawText(tabRect, QtCore.Qt.AlignVCenter | QtCore.Qt.TextDontClip, self.tabText(index));
painter.end()
def sizeHint(self):
return QtCore.QSize(60, 130)
import sys
app = QtGui.QApplication(sys.argv)
tabs = QtGui.QTabWidget()
tabs.setTabBar(HorizontalTabWidget())
widget1 = QtGui.QWidget()
widget2 = QtGui.QWidget()
tabs.addTab(widget1, "Widget1")
tabs.addTab(widget2, "Widget2")
tabs.setTabPosition(2)
tabs.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
最后我的文本按照我的预期对齐,但我有一点(大?)问题:当你点击每个标签按钮的右侧时,它不会发送currentChanged SIGNAL.我还尝试在paintEvent中扩展每个tabRect的宽度,但它不起作用.我应该改变什么?
谢谢 :) …
我正在尝试加载一个文件,其中所有行都使用相同的规则.(假设HEADER是单行)
HEADER1
HEADER2
.......
Run Code Online (Sandbox Code Playgroud)
但不幸的是,当我尝试使用LOAD DATA INFILE语句时,我收到此错误:错误代码:1409无法将具有固定大小行的文件中的值加载到变量.
这是我写的代码:
USE test;
DROP TABLE IF EXISTS EXAMPLE_H;
CREATE TABLE EXAMPLE_H(
ID CHAR(20),
SP CHAR(3),
IVA CHAR(11) PRIMARY KEY,
NLP CHAR(6),
DLP DATE,
DUVI DATE,
DELP CHAR(30),
FILLER CHAR(39),
VTLP CHAR(3),
FILL CHAR(49)
);
LOAD DATA INFILE 'BTILSP.TXT'
INTO TABLE test.EXAMPLE_H
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n'
(ID, SP, IVA, NLP, @var_date_one, @var_date_two, DELP, FILLER, VTLP, FILL)
SET DLP = str_to_date(@var_date_one, '%Y%m%d',
DUVI = str_to_date(@var_date_two, '%Y%m%d');
Run Code Online (Sandbox Code Playgroud)
我有这个想法阅读 …
我对C中的内存管理(以及Debian GNU/Linux下的GCC 4.3.3)提出了疑问.
根据K&R的C编程语言书(第7.8.5节),当我释放指针然后取消引用它时,是一个错误.但是我有些怀疑,因为我注意到有时候,就像我在下面粘贴的源代码一样,编译器(?)似乎按照定义明确的原则工作.
我有一个像这样的简单程序,它显示了如何返回动态分配的数组:
#include <stdio.h>
#include <stdlib.h>
int * ret_array(int n)
{
int * arr = (int *) malloc(10 * sizeof(int));
int i;
for (i = 0; i < n; i++)
{
arr[i] = i*2;
}
printf("Address pointer in ret_array: %p\n", (void *) arr);
return arr;
}
int * ret_oth_array(int n)
{
int * arr = (int *) malloc(10 * sizeof(int));
int i;
for (i = 0; i < n; i++)
{
arr[i] = i+n;
}
printf("Address pointer …
Run Code Online (Sandbox Code Playgroud) 在读取大型C程序或库时,跨多个源文件和目录遍历嵌套函数的好方法是什么?
通常,在一个C源文件中声明的函数将简单地重定向到另一个C文件中声明的另一个函数,该文件实际上可能再次重定向.
目前,我只是为链中的下一个函数找到它的声明,但必须有一个更有效的方法.
注意:我明确没有询问如何在运行时或调试器中跟踪程序流.我只是要求阅读来源.