标签: qcalendarwidget

PyQt5 QCalendarWidget selectedDate 格式更改

我一直在尝试使用 QCalendarWidget 来选择稍后将使用的日期。

所以我创建了这个小部件,它显示并且一切看起来都很好。然后我在文本浏览器中打印选定的日期进行测试,我发现日期格式不好。

这是与此问题相关的代码:

from PyQt5 import QtGui, QtCore, QtWidgets, uic

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        self.ui = uic.loadUi('rent_creation.ui', self)
        #the widgets are called calendarWidget_start_date_2 and calendarWidget_end_date_2
        self.ui.activate_thescript.clicked.connect(self.activate_script)
        self.show()

    def activate_script(self):
        global start_date
        global end_date
        start_date = self.ui.calendarWidget_start_date_2.selectedDate().toString()
        end_date = self.ui.calendarWidget_end_date_2.selectedDate().toString()
        #print data in text browser
        text = "Start date: %s \n End date: %s \n" %(start_date, end_date)
        self.ui.textBrowser.setText(text)

start_date = QtCore.QDate.currentDate()
end_date = QtCore.QDate.currentDate()

def run():     
    app = QtWidgets.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())


run()
Run Code Online (Sandbox Code Playgroud)

结果是:

Start date: …
Run Code Online (Sandbox Code Playgroud)

format date python-3.x pyqt5 qcalendarwidget

5
推荐指数
1
解决办法
6720
查看次数

QDateEdit日历弹出窗口

我正试图让a QDateEdit在允许QCalendarWidget时显示(而不是仅仅点击向下箭头).例如,在我班上的某个地方,我应该可以说:

ui.datepicker.showCalendar()
Run Code Online (Sandbox Code Playgroud)

它应该加载日期选择器正下方的日历.

看起来我需要子类QDateEdit,因为这不起作用:

QDateEdit *de = new QDateEdit();
de->calendarWidget()->show();
Run Code Online (Sandbox Code Playgroud)

当你通过Qt的QDateTimeEdit.cpp源代码时,我也试过发送键盘命令,但似乎我的键盘快捷键被禁用了.

关于我要对子类做什么以使其工作的任何想法?我想的是:

class MyDateEdit : QDateEdit
{
  Q_OBJECT

protected:
  void mouseEvent(QEvent *event) {
    this.calendarWidget().show();
  }
};
Run Code Online (Sandbox Code Playgroud)

但唉,似乎也没有编译或正常工作.

qt qcalendarwidget

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

在 Qt5 日历小部件中突出显示日期间隔

我想在 CalendarWidget 中突出显示所选开始日期和结束日期之间的每一天。我的问题是,CalendarWidget 只允许 QTCreator 中的 SingleSelection,但表示其他内容可以通过编程方式更改。

我发现了一些使用 QPainter 和 PaintCell() 方法的提示,但我不知道从哪里开始。互联网对我的情况没有帮助。我尝试先在 ButtonClick 上更改单个日期,但即使这样也不起作用,您能给我如何使用它的建议吗?

btn_test_pressed(self):
    painter = QPainter()
    painter.setPen(QtGui.QPen(QtCore.Qt.green))
    painter.fillRect(QtCore.QRectF(250, 250, 10, 10), 0, 5760)
    rect = QRect()
    date = datetime.datetime.now() - datetime.timedelta(1)
    self.calendarWidget.paintCell(painter, rect, date)
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt5 qcalendarwidget

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

标签 统计

qcalendarwidget ×3

pyqt5 ×2

date ×1

format ×1

pyqt ×1

python ×1

python-3.x ×1

qt ×1