为了账号安全,请及时绑定邮箱和手机立即绑定

请问该怎么指定item向右对齐?

请问该怎么指定item向右对齐?

HUX布斯 2022-10-08 15:11:40
像是我们平时用微信一样,自己发出的消息右对齐,其他左对齐是默认就不管了。
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

自定义一个Item

新建一个QWidget对象

在QWidget内添加Layout

在Layout内添加要的控件

为QWidget设置Layout

新建一个QListWidgetItem并调整大小

为QListWidgetItem设置QWidget

创建布局

首先我们创建一个最基本的布局, 只有一个listWidget和一个pushButton

实现点击button后在listWidget中添加数据


class Windows(QMainWindow, Ui_MainWindow):    def __init__(self):        super(Windows, self).__init__()        self.setupUi(self)        self.pushButton.clicked.connect(self.deal)     def deal(self):        # 准备实现的功能        pass  app = QtWidgets.QApplication(sys.argv)windows = Windows()windows.show()sys.exit(app.exec_())

可以看出此布局总体是一个横向布局(QHBoxLayout), 再其右边是一个纵向(QVBoxLayout), 下面的布局又是一个横向布局(QHBoxLayout)


def get_item():    # 总Widget    wight = QWidget()    # 布局    layout_main = QHBoxLayout()  # 总体横向布局    layout_right = QVBoxLayout()  # 右边的纵向布局    layout_right_down = QHBoxLayout()  # 右下的横向布局     layout_right.addLayout(layout_right_down)  # 右下布局填充到右边布局中    layout_main.addLayout(layout_right)  # 右边布局填充入总布局    wight.setLayout(layout_main)  # 为Widget设置总布局

{    "ship_name": "胡德",    "ship_country": "E国",    "ship_star": "5",    "ship_index": "1",    "ship_photo": "1.png",    "ship_type": "战巡"}

def get_item_wight(data):    # 读取属性    ship_name = data['ship_name']    ship_photo = data['ship_photo']    ship_index = data['ship_index']    ship_type = data['ship_type']    ship_country = data['ship_country']    ship_star = data['ship_star']    # 总Widget    wight = QWidget()     # 总体横向布局    layout_main = QHBoxLayout()    map_l = QLabel()  # 头像显示    map_l.setFixedSize(40, 25)    maps = QPixmap(ship_photo).scaled(40, 25)    map_l.setPixmap(maps)     # 右边的纵向布局    layout_right = QVBoxLayout()     # 右下的的横向布局    layout_right_down = QHBoxLayout()  # 右下的横向布局    layout_right_down.addWidget(QLabel(ship_type))    layout_right_down.addWidget(QLabel(ship_country))    layout_right_down.addWidget(QLabel(str(ship_star) + "星"))    layout_right_down.addWidget(QLabel(ship_index))     # 按照从左到右, 从上到下布局添加    layout_main.addWidget(map_l)  # 最左边的头像     layout_right.addWidget(QLabel(ship_name))  # 右边的纵向布局    layout_right.addLayout(layout_right_down)  # 右下角横向布局     layout_main.addLayout(layout_right)  # 右边的布局     wight.setLayout(layout_main)  # 布局给wight    return wight  # 返回wight

设置QListWidgetItem for ship_data in YOUR_DATA:    item = QListWidgetItem()  # 创建QListWidgetItem对象    item.setSizeHint(QSize(200, 50))  # 设置QListWidgetItem大小    widget = get_item_wight(ship_data)  # 调用上面的函数获取对应    self.listWidget.addItem(item)  # 添加item    self.listWidget.setItemWidget(item, widget)  # 为item设置widget

显示效果:


查看完整回答
反对 回复 2022-10-12
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信