Open mohass98 opened 5 months ago
Created a branch for this.
The first commit in this branch 72fbb4a3fbccfa786c3832a1db334538a486ddff already identified possible areas to make changes to the code:
GraphicsScene.py
:
GraphicsScene
self.setBackgroundAction = QtGui.QAction(
QtCore.QCoreApplication.translate("GraphicsScene", "Set Background color"), self
)
self.setBackgroundAction.triggered.connect(self.setBackgroundFromContextMenu)
self.contextMenu.append(self.setBackgroundAction)
str
or maybe another datatype?)
sigBackgroundChanged = QtCore.Signal(str) ## emitted when the Background Color was changed via the context menu
def setBackgroundFromContextMenu(self):
# TODO: Remove Debug Statements
print(self.parent)
print("BG Changed")
self.sigBackgroundChanged.emit("#ff000f")
GraphicsScene
(which is a member of GraphicsView
with the name sceneObj
) and connect to setBackground
method
self.sceneObj.sigBackgroundChanged.connect(self.setBackground)
[!NOTE]
Currently a hard-coded color value is used
- Maybe use the QColorDialog for color picking
- Or embed a ColorButton in the context menu by inheriting from
QWidgetAction
as shown here
Hello @Silas-K, thank you very much for your first approach.
I have pursued the idea of opening a QColorDialogue. This saves the hex value of the colour in a variable, which is then emitted to the application. I tried it with the Example FlowChart, where it worked. It was even possible to customise the individual backgrounds of both plots here. All you have to do is select the context menu on the respective plot.
I have pushed the change in the commit ad8360e.
The implemented feature looks like this:
I have currently imported the QColorDialogue manually. This does not take into account the current import logic of the library.
import weakref
from time import perf_counter, perf_counter_ns
from PyQt6.QtWidgets import QColorDialog
from .. import debug as debug
from .. import getConfigOption
from ..Point import Point
I still have to reference QColorDialogue in the corresponding files. After finishing that, we can then create a PR for the issue.
Have fixed the issue with the imports in 205ea2f
I opened an Issue https://github.com/pyqtgraph/pyqtgraph/issues/3073 in the Main Repository to get Feedback before opening a PR.
I think it's a good idea to create an issue in the official repository to discuss this feature and gather feedback.
Given that I've already opened issue #7 (including a preliminary approach for the solution, see this branch) for a similar feature, do you think it would be appropriate to also create an issue in the official repository for this one? Your thoughts?
I think it's a good idea to create an issue in the official repository to discuss this feature and gather feedback.
Given that I've already opened issue #7 (including a preliminary approach for the solution, see this branch) for a similar feature, do you think it would be appropriate to also create an issue in the official repository for this one? Your thoughts?
I really like the idea of changing not only the background but also the plot colour via the context menu. This allows the user to make individual settings to the plot without having to change the code. In my opinion, you should publish this as an issue in the main repository to get feedback from the community.
I ran the local test on this and it produced the same results as in the main branch.
Regular tests:
Master:
Feature Branch:
Example tests:
Master:
Feature Branch:
I opened now a PR #3080 for this.
Based on the feedback from the Pull Request pyqtgraph/pyqtgraph#3080 i created another branch Change-BackgroundColor-in-ContextMenu-Refactored based on this one to include the feedback.
It is not perfect so please review the commit 4410242 before updating and merging into Change-BackgroundColor-in-ContextMenu to automatically update the pull request.
Description
We want to introduce a feature that allows users to change the background color of a plot directly through its context menu. This enhancement aims to provide a more interactive and customizable plotting experience, catering to different user preferences and improving visual clarity for presentations or data analysis.
Current Behavior
At present, users cannot modify the background color of a plot through the context menu. The plot background is set to a default color and just can be changed within the code.
Expected Behavior:
Users should be able to right-click on a plot to access the context menu and choose a new background color for the plot. The color change should be applied immediately and should remain effective until the plot is reset or the application is closed