小编Mar*_*kon的帖子

如何在QTabWidget中更改文本对齐方式?

我找不到在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的宽度,但它不起作用.我应该改变什么?

谢谢 :) …

qt qt4 pyqt4 pyside qtabwidget

7
推荐指数
2
解决办法
6921
查看次数

MySQL:如何将具有固定行格式的数据加载到用户变量中

我正在尝试加载一个文件,其中所有行都使用相同的规则.(假设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)

我有这个想法阅读 …

mysql sql database

7
推荐指数
1
解决办法
4488
查看次数

为什么在释放指针后取消引用时会得到不同的结果?

我对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 malloc free gcc memory-management

2
推荐指数
3
解决办法
1321
查看次数

如何在C中有效跟踪嵌套函数调用?

在读取大型C程序或库时,跨多个源文件和目录遍历嵌套函数的好方法是什么?

通常,在一个C源文件中声明的函数将简单地重定向到另一个C文件中声明的另一个函数,该文件实际上可能再次重定向.

目前,我只是为链中的下一个函数找到它的声明,但必须有一个更有效的方法.

注意:我明确没有询问如何在运行时或调试器中跟踪程序流.我只是要求阅读来源.

c

2
推荐指数
1
解决办法
438
查看次数

标签 统计

c ×2

database ×1

free ×1

gcc ×1

malloc ×1

memory-management ×1

mysql ×1

pyqt4 ×1

pyside ×1

qt ×1

qt4 ×1

qtabwidget ×1

sql ×1