Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Basic working pymmcore-gui, on which we can build #5

Open
wants to merge 228 commits into
base: main
Choose a base branch
from

Conversation

tlambert03
Copy link
Member

I've been working from @fdrgsp's micromanager-gui repo to start building what I hope can be a common place for us to all work on a shared app (cc @fdrgsp, @marktsuchida, @gselzer, @wl-stepp, @nicost) ... and here it is! (this retains all of @fdrgsp's commit history for the stuff he worked on)

This PR establishes a basic pattern that I hope we can build on. For now, I've left out the more complicated specialized image/viewing logic that @fdrgsp has working over in that repo, and i hope he and others can help add it back, ideally using the new ndv v2 stuff that @gselzer and I have been working on. there's an image preview for now, but no multidimensional viewer or histogram stuff yet.

to try it out: clone this branch, run uv sync, and then uv run mmgui to start the gui.

Screenshot 2024-12-23 at 12 57 51 PM

Things that are currently in here, and some general notes:

  • This establishes a nice pattern for reusable QActions (things that either act on the core, or toggle standard widgets), so that items in menus and toolbars are mutually aware, knowing when they are enabled/checked/etc... and sharing common icons. Qt has a very nice QAction framework and I'd like to make the most of it here. This doesn't use app-model ... but it could possibly do so in the future (and the starting logic is not terribly dissimilar). These could also help create customizeable layouts in a declarative way.
  • plenty of widgets, including a Console, MDAWidget, Exception explorer, etc...
  • establishes working logic for creating a bundled application (run pyinstaller mmgui.spec). So that we can distribute a double-clickable standalone application. It includes a number of hooks that solve issues with various dependencies in a frozen environment
  • Note, this explicitly uses PyQt6, instead of qtpy... since that's all i intend to support for the near future, and it works a bit better for type hinting if we go directly
  • This will use uv and will check in the uv.lock file. This app will strictly pin all dependencies.

fdrgsp and others added 30 commits December 17, 2024 08:57
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
updates:
- https://github.com/charliermarsh/ruff-pre-commithttps://github.com/astral-sh/ruff-pre-commit
- [github.com/astral-sh/ruff-pre-commit: v0.3.3 → v0.4.3](astral-sh/ruff-pre-commit@v0.3.3...v0.4.3)
- [github.com/psf/black: 24.3.0 → 24.4.2](psf/black@24.3.0...24.4.2)
- [github.com/pre-commit/mirrors-mypy: v1.9.0 → v1.10.0](pre-commit/mirrors-mypy@v1.9.0...v1.10.0)
Copy link

codecov bot commented Dec 24, 2024

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants